关于文件的读写
文件的读写基本样式:obj=open(“文件路径”,“模式”,“编码格式”)#编码格式记得指定
模式有:
r表示以只读方式打开文件,不写默认为r
w表示以打开一个文件用于写入;当文件存在时,则写入的内容会覆盖原内容,文件不存在,则创建文件再写入
a表示打开一个文件用于追加,在原文件内容后面追加
r+表示既能读又能写,以读和追加方式打开或写入文件
a+追加读写
ab,rb,wb表示以二进制格式读写文件,不能传encoding参数,读取的内容输出在控制台上,内容前面开头都会添加了b‘字眼,表示byte字节
基本操作:
obj.close()#关闭,不要忘记写
obj.read()#读取文件内容,一次性把所有内容加载到内存中
obj.readline()#读取文件内容,只读取一个单行
我们可以通过循环读取所有的内容
(1)readline()和readlines()是不一样的
(2)关于文件读写光标的问题
不过关于光标的问题,我们可以有相关的光标操作
tell()#记录光标,打印当前光标的位置
seek()#查找光标,传参跳到参数的光标位置
其他的不常见操作:
关于flush()方法:
flush() 表示刷新,我们来看看文件的读取过程,首先我们要直到文件的读写有缓存机制的,当缓存达到一定的大小时,即缓存满了的时候,在缓存的数据才会写入硬盘。而
flush()刷新,可以强制的把数据刷进硬盘
例子:实现进度条的效果
(3)with语句:
这是一种防止忘记关闭文件流的一种语法,推荐使用
格式是:with open(“路径”,“模式”,“编码格式”) as obj:
如此方式,当with执行完毕后,内部会自动关闭并释放资源
当实现打开多个文件时,规范格式是:
with open(“路径1”,“模式1”,“编码格式1”) as obj1,\
(“路径2”,“模式2”,“编码格式2”) as obj2:
实现代码的美观性