参考自:https://www.cnblogs.com/alex3714/articles/5717620.html
f = open(‘test.txt‘) #打开文件 first_line = f.readline() # 每次读一行,并移动文件指针 print(‘first line:‘,first_line) #读一行 print(‘分隔线‘.center(50,‘-‘)) data = f.read() # 读取剩下的所有内容,会一次性读取到内存,可能导致内存溢出 print(data) #打印文件内容 f.close() #关闭文件
上面的文件操作需要手动关闭文件:f.close(),为了避免打开文件后忘记关闭,可以通过管理上下文,当with代码块执行完毕时,内部会自动关闭并释放文件资源,例如:
with open(‘test.txt‘,‘r‘,encoding=‘utf-8‘) as f: print(f.readline())
在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即:
with open(‘log1‘) as obj1, open(‘log2‘) as obj2: pass
打开文件的模式有:
"+" 表示可以同时读写某个文件
"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
"b"表示处理二进制文件(如:图片、视频、音频,FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
with open(‘text.txt‘,‘r‘,encoding=‘utf-8‘) as f: content = f.read() # 一次性读取文件所有内容,如果文件过大,内存溢出的话,不能读取全部内容! f.readlines() # 一次性读取所有文件的行,生成一个列表,效率低 f.readline() # 读取文件的一行,效率高 f.tell() # 获取文件的指针所在字节位置 f.seek() # 移动文件的指针 f.flush() # 刷新缓存,直接将文件写入 f.truncate(8) # 截取文件前8个字节 for line in f: # 循环读取文件的行,效率高 print(line)
f.write(‘new message‘)
原文:https://www.cnblogs.com/wztshine/p/11760369.html