文件操作作为python基础中的重点,必须要掌握。
1、默认我们在本地电脑E盘新建wp.txt文件进行测试,文件内容如下设置。
2、进行代码编写:
f=open("E://wp.txt")#f代表了句柄,意味着,打开文件后,必须要有东西去操作它,这个东西就是句柄,习惯性叫法。
first_line=f.readline()#这里是读取文件内空的操作,readline指读取第一行,也就是wp文件里面的"hello A"内容,还有一种形式是readlines,这里表示依次读取所有行,并且以集合的方式显示出来first_line: ['1,hello A \n', '2,hello B\n', '\n', '3,hello C']
print("first_line:"first_line)#进行文件内容的打印
print("我是分割线“.center(50,"-”))#打印一条居中的分隔线
data=f.read()#指针移动到条2行,从这里开始读写剩余文件内容,read()读取指针开始里以下的所有内容
print(data)
f.close()关闭文件
3、打开文件的模式主要有:
只读模式r #此模式为文件打开方式的默认模式,只能是存在的文件才可以使用此模式,不存在则会报错。
只写模式w #此模式下文件如果不存在,则创建新文件,如果文件存在,则清空旧文件内容。但是此模式下文件不可读,只能创建或者清空旧文件内容。
追加模式a #此模式下文件可以追加,不存在则创建,存在则追加,应该是所有模式里面最常用和最重要的模式。注意的是,打印时,此模式下,指针自动会放到旧文件内容的末尾。
可读可写可追加r+ #
写读模式w+ #
"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
- rU
- r+U
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
- rb
- wb
- ab
4、文件操作:
f.write(str),是写模式,可以把内容写到文件中去,并且不会在末尾加换行符,
f.tell(),返回当前位置点,并且把指针返回到原点
f.flush(),把缓冲区的数据写入到硬盘
f.isatty(),判断文件是否为终端设备文件
f.next(),返回下一行文件,并且把指针指入到下一行
fp.seek(offset[,whence]) ,将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
fp.truncate([size]),把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。
5、with语句:
在打开文件后,为了防止忘记关闭文件,引入with语句,让其自动关闭。
with open(“E://wp.txt","r") as f :
pass
6、重要的编码转换方式,记住如果是utf-8转换成GBK,需要,utf-8先decode为unicode,再encode为GBK,如果是GBK转换为UTF-8,则需要先decode为unicode,再encode为utf-8
进度条效果:
import sys,time
for i in range(50):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.3)