一、操作文件的3种模式
1.w创建模式
(1)如果文件已存在则覆盖旧文件
(2)f.write()没有换行符,想要的话需要自己加 f.write("amber\n")
(3)只能写
2.r只读模式
(1)print(f.read())会把文件中所有的内容都读取出来
(2)如果不想读所有的话:只读一行——print(f.readline())
(3)如果已经读完了所有再进行读一行的操作就会没有变化,因为读完了就是读完了不能再回头了,下面没有内容可读了,但是也不会报错
(4)只能读
3.a追加模式
(1)把write的内容追加到尾部
(2)只能写不能读
二、遍历文件
1.步骤
(1)打开文件:f=open("文件名")
(2)遍历:for line(可以取别的名字) in f:(每循环一次读取一行)
print(line)
(3)如何条件判断:for line in f:
line=line.split() (把文件每一条做成一个列表,方便进行判断,每一列是一个字符)
条件量1=int(line[3]) (因为每一列是一个字符所以如果判断大小的话要再转成数字形式)
条件量2=int(line[4])
if 条件量1>条件1 and 条件量2<条件2:
print(line)
三、二进制模式操作文件
1.意义
文件不止有文字,还有图片、视频等等,如果用以上方式打开文件会报错。任何文件的底层逻辑都是二进制,所以我们用二进制的模式打开这些文件。
2.方法
rb 二进制只读模式
wb 二进制创建模式
ab 二进制追加模式
四、一些比较重要的功能
1.seek
功能:移动光标到指定位置(在上文全部读取和一行读取那里提到过)(光标是按字节移动的而不是按字符)
也不可以卡在中间的字节(一半的字),会报错的
使用场景:修改文件内容
2.tell
功能:返回光标当前位置
3.flush
功能:把缓存里的数据强制刷新到硬盘里
五、用混合模式操作文件
w+ 写读模式
r+ 读写模式(跟追加一样,是写在文件尾部的)
a+ 追加读