您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python進(jìn)行文件處理的方法是什么”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“Python進(jìn)行文件處理的方法是什么”文章能幫助大家解決問題。
python操作文件
打開文件關(guān)鍵字open
語法格式:
open('文件路徑','讀寫模式','字符編碼')
f = open('a.txt','r',encoding='utf-8')#打開文件 print(f.read())#操作文件 f.close()#關(guān)閉文件
(with打開文件之后會自動關(guān)閉)
語法格式:
with open(r'a.txt','r',encoding='utf-8') as f:
as f:就相當(dāng)于你寫了一個(gè)f = open,只不過這個(gè)as替換了等于號,這個(gè)f(句柄)就相當(dāng)于一個(gè)變量名可以隨意更改
r 的作用:有時(shí)有你在填寫路徑的時(shí)候遇到反斜杠可能會發(fā)生轉(zhuǎn)義,這個(gè)時(shí)候字符串最前面加上 r 來解決轉(zhuǎn)義的問題,
with open(r'a.txt','r',encoding='utf-8') as f: f.read() #read()是有缺陷的,如果打開文件特別大的時(shí)候就會打不開,會很慢。會導(dǎo)致內(nèi)存溢出,因?yàn)樗蜷_不會存在磁盤中,會先存在內(nèi)存中
with open(r'a.txt','w',encoding='utf-8') as f: f.write('內(nèi)容') #如果路徑不存在,會新建一個(gè)文件 #如果文件存在,會先清空文件中的內(nèi)容,在進(jìn)行寫內(nèi)容,就算不寫東西用pass,也會清空,w模式就會直接清空 # w 模式只能寫string類型
with open(r'a.txt','a',encoding='utf-8') as f: f.write('內(nèi)容\n') #如果路徑不存在,會新建一個(gè)文件 #不會清空文件內(nèi)容,但是不會換行,需要自己在內(nèi)容后面加\n
多行數(shù)據(jù):括號里不可能寫多行數(shù)據(jù),需要多個(gè)write如下:
f.write('內(nèi)容\n') f.write('內(nèi)容\n') f.write('內(nèi)容\n') f.write('內(nèi)容\n') ########r,w, a:只能讀寫文檔,不能讀寫視頻音頻
##讀模式 with open(r'a.txt','a',encoding='utf-8') as f: print(f.readline())#一次讀取一行,會自動換行 print(f.readlines())#把文件內(nèi)的數(shù)據(jù)按照每一行組裝成列表的模式 print(f.readable())#判斷是否可具備讀的條件,就是看這個(gè)文件是否可讀,返回bool值 ##寫模式 with open(r'a.txt','a',encoding='utf-8') as f: print (f.write())#直接清空數(shù)據(jù),然后根據(jù)口號中的內(nèi)容寫數(shù)據(jù) print(f.writeable())#判斷是否具備寫的條件,返回bool值 print(f.writelines(['獻(xiàn)運(yùn)好帥\n','獻(xiàn)運(yùn)好帥\n','獻(xiàn)運(yùn)好帥\n',]))#就是吧數(shù)據(jù)一行一行的給你去寫 ##文件的操作優(yōu)化 print(f.flush())#把內(nèi)存中的數(shù)據(jù)立刻刷到硬盤中,因?yàn)槟阋婚_始寫的數(shù)據(jù)會存儲在內(nèi)存中如果發(fā)生斷電數(shù)據(jù)會消失 """文件句柄 f 支持for循環(huán)""" with open(r'a.txt','a',encoding='utf-8') as f: for line in f : print(line)#把文件里面的數(shù)據(jù)一行一行打印,以后讀取文件的時(shí)候都要用for循環(huán)一行一行的去讀取
r. w. a. 模式
1. 只能操作文本
2. 都是以字符串為單位
3. r,w,a,原先的寫法是rt,wt,at,如果是只操作文本這個(gè)t可以省略
b模式:二進(jìn)制
1.能操作任何的數(shù)據(jù)類型,eg:文本,音頻,視屏
2.寫法:rb ab wb :此時(shí)的b不能省略
3.b模式的情況下encoding參數(shù)不能寫,因?yàn)樗际亲址幋a的模式了encoding就沒用了
##rb: with open(r'a.jpeg','rb') as f:#b模式的話字符編碼就不要了 print(f.read())#打印出一推二進(jìn)制數(shù) ##wb: with open(r'a.jpeg','rb',encoding='utf-8') as f: f.write(b'你好')#你好前面必須加上b才可以打印出,不然出來的是亂碼注釋第一種編碼方式 s.'你好' f.write(s.encode(utf8))#這是第二種編碼方式 """wb寫進(jìn)去了也必須rb來讀,然后后面還需要跟上decode去解碼 print(f.read().decode('utf8')) """ ##按照字符或字節(jié)讀?。阂⒁馑x取的數(shù)據(jù)大小 with open(r'a.txt','a',encoding='utf-8') as f: print(f.read(1))#當(dāng) r 模式下,read括號里面的數(shù)字代表的是字符,但是在 b 模式下read后面括號里面的代表的是字節(jié)
關(guān)于“Python進(jìn)行文件處理的方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。