1、文件处理流程
1)打开文件,得到文件句柄并赋值给一个变量
2)通过句柄对文件进行操作
3)关闭文件
4)文件读写的参数必须是字符串
5)样例
f=open("陈情令","r",encoding="utf8") #open("陈情令",encoding="utf8")文件句柄, # "陈情令"是文件路径,当文件在同一层级路径时,可以直接写文件名,取相对路径
#f就是变量
#默认为只读模式r data=f.read()#读取文件全部内容 print(data) f.close()#关闭文件
2、文件处理:读模式
f=open("陈情令","r",encoding="utf8") #open("陈情令",encoding="utf8")文件句柄, print("第1行:",f.readline(),end="") #去掉换行 print("第2行:",f.readline()) print("第3行:",f.readline()) print("第4行:",f.readline()) print("第5行:",f.readline()) print("第6行:",f.readline()) print(f.readable()) #判断文件模式是否是可读模式 print("第7行:",f.readline()) print("第8行:",f.readline())
f.close()
方式二: f=open("陈情令","r",encoding="utf8") #open("陈情令",encoding="utf8")文件句柄, print("第1行:",f.readline(),end="") #去掉换行 print("第2行:",f.readline()) print("第3行:",f.readline()) print(f.readable()) #判断文件模式是否是可读模式 data1=f.readlines()#读取文件所有内容,放到一个列表当中 print(data1) f.close()
3、文件处理:写模式
如果文件存在内容,启动写模式时,会清空文件内容,等待写入
如果文件不存在,启动写模式时,会创建一个新文件,等待写入,写模式只能写不能读
f=open("肖战哥哥","w",encoding="utf8") print(f.writable()) f.write("1111 22222 I love you 战哥 ") f.writelines(["祝福 ","我爱你战哥"]) f.close()
4、文件处理:追加模式a
f=open("肖战哥哥","a",encoding="utf8") f.write("平静 自我 I love you 战哥 ") f.writelines(["不忘初心继续前进","爱你"]) f.close()
5、文件其他处理:可读可写r+ 和 自动关闭文件with
#可读可写r+ f=open("肖战哥哥","r+",encoding="utf8") data=f.read() print(data) f.write("I love you 战哥 ") f.close()
with open("肖战哥哥","r",encoding="utf8") as f1, open("王一博酷盖","w",encoding="utf8") as f2: data=f1.read() f2.write(data) #从原文件f1中读取全部数据,将f1数据写到第二个文件f2中去 #with会同时关闭f1和f2文件
6、文件处理的b模式:原生文件处理方式:二进制
1)文件默认的处理方式是文本方式 rt wtat处理,但是图片和视频都是二进制方式处理
2)二进制方式处理的文件是可以跨平台的
#方式一:rb f=open("陈情令","rb") #b方式不可以指定编码 data=f.read() print(data) print(data.decode("utf8")) f.close() #b'xe8x82x96xe6x88x98xe5x93xa5xe5x93xa5xe5x8axa0xe6xb2xb9xefxbcx8cxe6x88x91xe7x9ax84xe5x81xb6xe5x83x8fxefxbcx81 xe6xa6x9cxe6xa0xb7xe7x9ax84xe5x8ax9bxe9x87x8fxefxbcx8cxe6x88x91xe4xb9x9fxe8xa6x81xe5x8axa0xe6xb2xb9xefxbcx81 xe4xb8x8dxe5xbfx98xe5x88x9dxe5xbfx83xefxbcx8cxe8xb4xb5xe5x9cxa8xe5x9dx9axe6x8cx81xefxbcx81 xe4xbbxbbxe4xbdx95xe4xbax8bxe6x83x85xe9x83xbdxe8xa6x81xe5x9dx9axe6x8cx81xefxbcx8cxe5x9dx9axe6x8cx81xe8x87xaaxe5xb7xb1xe7x9ax84xe5x88x9dxe5xbfx83xefxbcx8cxe5x8axaaxe5x8ax9bxefxbcx8cxe7x9bxb8xe4xbfxa1xe8x87xaaxe5xb7xb1xefxbcx8cxe6x89x8dxe5x8fxafxe8x83xbdxe5xbex97xe5x88xb0xe8x87xaaxe5xb7xb1xe6x83xb3xe8xa6x81xe7x9ax84xe7xbbx93xe6x9ex9cxefxbcx8cxe6x9cx9fxe5xbex85xe8x87xaaxe5xb7xb1xe7x9ax84xe5xb0x8fxe5xaex87xe5xaex99xe7x88x86xe5x8fx91 xe9x9dxa0xe4xbaxbaxe4xb8x8dxe5xa6x82xe9x9dxa0xe8x87xaaxe5xb7xb1 xe8x87xaaxe5xb7xb1xe5xbcxbaxe5xa4xa7xe4xbax86xefxbcx8cxe5xaex89xe5x85xa8xe6x84x9fxe8x87xaaxe5xb7xb1xe7xbbx99'
#wb/ab f=open("肖战哥哥","wb") #b方式不可以指定编码 f.write(bytes("赞赞爱你 ",encoding="utf8")) f.write("123木头人 ".encode("utf8")) f.close()
7、文件操作方法