文件的一些基本操作:
打开文件:f=open('文件',‘打开方式’,encoding='编码') 文件句柄,不写默认是读模式,编码是程序里的默认编码。
关闭文件:f.close(),f.closed是判断文件是否关闭 没有返回False
打开方式(文档模式):‘r’ 读模式,'r+' 读写模式(写好像在最后一行),'rb' 二进制读模式,不要传编码;
‘w’写模式(创建一个新文件或并覆盖原来同名文件的内容),‘w+’写读模式(据说没什么卵用,我也不熟悉),'wb',二进制写模式,字符串记得encode()
'a'文件最后追加模式(不能读),‘a+’ 追加读写模式,‘ab’ 二进制追加模式,
U模式跟b 类似,把/r/n 都转换成/n,还有一些自己去组合
一些方法(假设有个光标):
f.tell(),打印出光标的位置(一般默认是0)
f.seek(num),指定光标到什么位置
f.readalbe()文件是否可读;f.writealbe() 文件是否可写,f.seekalbe() 文件是否可移动光标,
f.name 打印文件名 f.mode 打印文档模式,f.encoding,打印编码
f.truncate(22),从头开始截取多少数量 f.detach() 文件编辑中突然改编码
f.read(num) 读文件所有内容,光标移最后 num多少字符 二进制是字节数(很多雷同)
f.readline(num)读一行内容,光标移下一行开始,num多少字符 二进制是字节数(很多雷同)
f.readlines(num)读所有行内容,每行是列表里的一个元素,读到num是多少字符,
高效的循环文件的每一行:
for line in f: #不要readlines(文件太大很费时间或是硬盘不够大)
print(line)
f.write('内容') 一般看光标写入位置,文档模式不同会有不同(有些模式直接写在最后)
文件读写 在计算机有缓存机制,一般写入的时候,存入内存缓存区,等到达一定数量才提交写入硬盘
而 f.flush(),强制提交写入硬盘。