文件操作
带b的基本不用,存储传输用,r+最常用
读
f = open('info.txt', mode='r', encoding='utf-8') #rb用于非文字文件储存传输 content = f.read() print(content) f.close()
read 一次性读完(占内存)
readlines 一次性读完(占内存)
readline 一行一行读(图片,视频不按行)
for循环 最好
写
f = open('log.txt', mode ='w', encoding='utf-8') #没有文件创建文件 f.write('This is a log file') #将原文件内容全部清除,并写入新内容 f.close() f = open('log.txt', mode='wb') #wb直接写入bytes类型,不要编码 f.write('This is a log file'.encode('utf-8')) #编码为utf-8后写入文件 f.close()
write
追加
f = open('log.txt', mode='a', encoding='utf-8') #a 追加写入 f.write('\nAppend line') f.close() f = open('log.txt', mode='ab') #ab 追加写入bytes类型 f.write('\nAppend line with bytes'.encode()) f.close()
读写
#读写,先读后写,如果先写再读,会把前面的内容覆盖写入,读的内容为写入内容后还剩的原文件内容 f = open("log.txt", mode='r+', encoding='utf-8') conc = f.read() print(conc) f.write('\nThis a read&write seccsion') f.close() f = open("log.txt", mode='r+b') conc = f.read() print(conc) f.write('\nThis a read&write seccsion with encode in r+b mode'.encode('utf-8')) f.close()
写读
调光标(指针)
f.seek(0)
seek 指定光标位置
tell 获取光标位置
truncate 截取文件
f = open("info.txt", mode='r+', encoding='utf-8') f.seek(3) #seek按字节移动,utf-8的一个中文字符需要移动3 print(f.tell()) #打印光标的位置 count = f.tell() f.seek(count - 3) #找到光标位置,并且把光标前移3个字节 cont = f.read(3) #读前3个字符,中文也算一个字符 print(cont) f.close()
f = open("log.txt", mode='r', encoding='utf-8') cont = f.readline() #读一行 conts = f.readlines() #每一行当做一个元素添加到列表 print(conts) f.seek(0) for line in f: print(line) f.close()
另一种打开文件方式,推荐
with open('info.txt', mode='r+', encoding='utf-8') as obj, open('log.txt', mode='r',encoding='utf-8') as f1: print(obj.read()) print(f1.read()) #不需要close()
删除文件和重命名文件
import os
os.remove('a.txt')
os.rename('a.bak', 'a.txt')

浙公网安备 33010602011771号