python学习之路 四 :文件处理
本节重点
-
掌握文件的读、写、修改方法
-
掌握文件的处理模式的区别
一.文件读取
1.读取全部内容
# 一次性读取文件 f = open("test.txt",'r',encoding='gbk') data = f.read() print(data)
f.close()
2.按行读取
# 按行读取 f = open("test.txt",'r',encoding='gbk') data = f.readline() print(data,end='')
f.close()
3.循环读取
# 循环读取 f = open("test.txt",'r',encoding='gbk') for line in f: print(line,end='')
f.close()
# 循环读取二 f = open('test.txt','r',encoding='gbk') data = f.readlines() for line in data: print(line)
4.二进制读取
# 二进制读取 f = open("test.txt",'rb') data = f.read() print(data.decode('gbk'))
f.close()
5.按字符读取
# 按字节读取 f = open("test.txt",'r',encoding='gbk') data = f.read(1) print(data)
f.close() f = open("test.txt",'r',encoding='gbk') data = f.readline(2) print(data)
f.close()
二.文件写入
1.清空原内容写入
# 清空原内容写入 f = open('test.txt','w',encoding='gbk') f.wirte('新内容,新世界') f.close() # 关闭并保存
2.追加内容
# 清空原内容写入 f = open('test.txt','a',encoding='gbk') f.wirte('新内容,新世界') f.close() # 关闭并保存
3.二进制写入
# 清空原内容写入 f = open('test.txt','wb') f.wirte('新内容,新世界'.encode('gbk')) f.close() # 关闭并保存
4.flush保存
# flush强刷保存内容 f = open('test2.txt','w',encoding='gbk') f.write('新内容,新世界3') f.flush() #保存内容 #f.close()
三.文件修改
1.一次性修改,占用cpu
# 一次性修改 f = open("test.txt",'r+',encoding='gbk') data = f.read() f.seek(0) f.truncate() data = data.replace('Zi','子') f.write(data) f.close()
2.边读边改,占用硬盘
# 边读边改 import os f_name = "test.txt" f_temp_name = "test_temp.txt" f = open(f_name,'r',encoding='gbk') f_temp = open(f_temp_name,'w',encoding='gbk') for line in f: f_temp.write(line.replace('子','Zi')) f.close() f_temp.close() os.replace(f_temp_name,f_name)
四.文件处理模式