文件操作模式
读取文件
文件内容
床前明月光,疑是地上霜 举头望明月,低头思故乡
1.read()
读取文件所有内容
f = open('libai',encoding = 'utf-8') print(f.read()) 床前明月光,疑是地上霜 举头望明月,低头思故乡
2.readline()
只读取一行内容
f = open('libai',encoding = 'utf-8') print(f.readline()) 床前明月光,疑是地上霜
3.readlines()
把文章以换行符分割i,并生成list格式(数据量大的时候,不建议使用)
f = open('libai',encoding = 'utf-8') print(f.readlines()) ['床前明月光,疑是地上霜\n', '举头望明月,低头思故乡']
4.seek和tell光标
f = open('libai',encoding='utf-8') data = f.read() #默认光标在起始的位置,read()读取完后,光标停留到文件末尾 data2 = f.read() #data2读取的内容为空 print(data) print(data2) f.close() #关闭文件
文件内容
abcdefg hyjklmn opqrstu vwxyz
f = open('libai',encoding='utf-8') #tell获取当前的光标 print(f.tell()) #0 print(f.readline().strip()) print(f.readline().strip()) print(f.tell()) f.seek(0) #移动光标到文件起始的地方 print(f.readline().strip()) 结果: 0 abcdefg hyjklmn 18 abcdefg
5.flush刷新
模拟进度条
import sys,time for i in range(40): sys.stdout.write('#') sys.stdout.flush() #flush强制舒心缓存到内存的数据写入硬盘 time.sleep(0.1)
6.with语句
with代码执行完后,文件会自动关闭
with open('libai') as f: print(f.read())
7.二进制读取"rb"
#rb 二进制模式读取 f = open('libai','rb') #主要用于网络传输 print(f.readline()) b'\xe5\xba\x8a\xe5\x89\x8d\xe6\x98\x8e\xe6\x9c\x88\xe5\x85\x89\xef\xbc\x8c\xe7\x96\x91\xe6\x98\xaf\xe5\x9c\xb0\xe4\xb8\x8a\xe9\x9c\x9c\r\n'
8.二进制写"wb"
f = open('libai','wb') f.write('中文'.encode())
编码与转换
方法