file 的三种基本操作模式:
r:只读;w:只写;a:追加;
rb:按照二进制位进行读取;wb:按照二进制位进行写;ab:按照二进制位进行追加;
r+:读写模式,光标默认在0位置,最后位置开始写
w+:写读模式,先清空,再写读
a+:追加读模式,光标默认在最后位置
三种操作流程:1.打开文件,2.对文件进行操作,3.关闭文件
with 同时管理多个文件对象
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。
f.read() 读取整个文件
f=open('小重山','r',encoding='utf8')print(f.read())
结果:
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。
f=open('小重山','r',encoding='utf8')print(f.read(12))
结果:
昨夜寒蛩不住鸣。
惊回千
f.read()
f.readline() 每次只读取一行
f=open('小重山','r',encoding='utf8')
a=f.readline()print(a)
结果:
昨夜寒蛩不住鸣。
f=open('小重山','r',encoding='utf8')
a=f.readline()print('1',a)
b=f.readline()print('2',b)
c=f.readline()print('3',c)
结果:1昨夜寒蛩不住鸣。2惊回千里梦,已三更。3 起来独自绕阶行。
f.readline()
f.readlines() 一行一行的读,但是将其全部读出以列表的方式存储
f=open('小重山','r',encoding='utf8')
a=f.readlines()print(a)
结果:
['昨夜寒蛩不住鸣。\n', '惊回千里梦,已三更。\n', '起来独自绕阶行。\n', '人悄悄,帘外月胧明。\n', '白首为功名,旧山松竹老,阻归程。\n', '欲将心事付瑶琴。\n', '知音少,弦断有谁听。\n']
f.readlines()
f.tell() 取出光标位置
f.seek(0) 移动到光标指定的位置
flush() 同步把数据从缓存转移到磁盘上
truncate() 阶段数据(不能再r模式下)
在w模式下:先清空,再写,再截断
在a模式下:直接将指定位置后的内容截断
从文件的首行首字符开始截断,截断文件为n个字符;无n表示从当前位置起截断;截断之后n后面的所有字符被删除。其中win下的换行代表2个字符大小。
f=open('小重山2','w',encoding='utf8')
f.truncate(5)
f.write('hello world')
f.truncate(5)
f.close()
结果:
hello
truncate()