Python处理文件
注:文中图片来源于慕课网“https://www.imooc.com/learn/416”
文件打开方法:open(name[,mode[buf]]),name为文件名,mode为读取方式,buf为读取缓冲大小
文件读取方式:read([size]),读取指定长度,如果size不存在,则读取全部
readline([size]),读取一行中size长度
readlines([size]),读取文件size长度,返回每一行所组成的列表
iter:使用迭代器完成文件读取操作
文件写入方式:write(str),将字符串写入文件
writelines(sequences_of_strings),写多行到文件
mode(读取方式):
r,只读方式打开,文件必须存在
w,只写方式打开,文件不存在则创建,文件存在则清空文件内容
a,追加方式打开,文件不存在则创建
r+/w+,读写方式打开
a+,追加和读写方式打开
rb,wb,ab,rb+,wb+,ab+ 以二进制方式打开
示例:test.txt的内容为 12345678
open('text.txt','r'):只能读,不能写
open('text.txt','w'):打开后内容变为空,再写入 abc,结果为 abc
open('text.txt','a'):打开后写入 abc ,结果为 12345678abc
open('text.txt','r+'):打开后写入 abc ,结果为 abc45678
open('text.txt','w+')同open('text.txt','w')
readline(size): 当前行剩余长度>size,返回当指定长度;否则返回当前行剩余内容
readlines(size): 读取到size长度,返回一个列表,每一行作为一个数据项,且最后指针所在行会全部读取
示例:文件为 12\n12\n12\n,当size为4时,会返回['12\n','12\n']
iter: 可以把文件变为迭代对象,一行一行遍历
f = open("...") iter_f = iter(f) for line in iter_f: print(line) f.close()
写操作时,由于有写缓存机制,执行write后,需要关闭文件或调用flush函数,内容才会真正写入到文件;当写入量大于等于缓存空间时,写缓存会自动同步到磁盘文件中
f.close()或者f.flush()
文件指针移动:f.seek(...)
seek(offset[,whence]),offset为偏移量,可以为负数但当前位置加上偏移量不能超出文件范围,whence为偏移相对位置
whence:os.SEEK_SET 相对文件起始位置,0
os.SEEK_SUR 相对于当前位置,1
os.SEEK_END 相对于文件结尾位置,2
f.tell()返回当前指针所在的位置
文件属性:
file.fileno() 文件描述符
file.mode 文件打开权限
file.encoding 文件编码格式
file.closed 文件是否关闭
ini配置文件:
需要导入 configparser