您好,登錄后才能下訂單哦!
這篇文章主要介紹python讀寫(xiě)文件的方法有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
python文件讀寫(xiě)分為三步
打開(kāi)文件,獲取句柄;操作文件;關(guān)閉文件
文件基本操作如下:
1 f = open("E:\\person_practice\\python\\test.txt","r") #打開(kāi)文件 2 fr = f.read() #讀取文件 3 print(fr)
文件打開(kāi)時(shí),需指定文件路徑、打開(kāi)方式,windows文件路徑如果是“E:\person_practice\python\test.txt”,需要把"\"做轉(zhuǎn)移,或者改成:
"E:/person_practice/python/test.txt"
打開(kāi)方式分為r、w、a三種方式 ,【+】表示可以同時(shí)讀寫(xiě)
r 只讀,默認(rèn)模式 w 只寫(xiě),不可讀,若文件不存在則創(chuàng)建,若存在,則刪除內(nèi)容,寫(xiě)入新內(nèi)容 a 只追加,不可讀,若文件不存在則創(chuàng)建,存在則追加新內(nèi)容 r+ 可讀、可寫(xiě)、可追加,若文件不存在,則報(bào)錯(cuò) w+ 可讀、可寫(xiě),若文件存在,內(nèi)容會(huì)被清空,可讀新寫(xiě)入的內(nèi)容 a+ 可讀、可寫(xiě)、可追加,若文件存在,則追加新內(nèi)容,讀時(shí)默認(rèn)指針在文件末尾,若需讀取整個(gè)文件, 需把指針歸零【f.seek(0)】
此種方式打開(kāi)文件,需要在使用結(jié)束后及時(shí)關(guān)閉文件,可以使用【with】方法來(lái)解決:
with open("F:\\python_scripts\\py\\test.txt ","r") as fr: #以r形式打開(kāi)文件 for line in fr: #一行一行讀取 print(line)
此種方式會(huì)在使用完文件句柄后,自動(dòng)關(guān)閉該文件。
常用文件操作命令
fr.read() #讀取所有內(nèi)容 fr.readline() #讀取一行 fr.readlines() #讀取所有文件內(nèi)容,返回一個(gè)list #以上三個(gè)命令在大文件時(shí)慎用,會(huì)把內(nèi)容讀到內(nèi)存中,占用大內(nèi)存 fr.seek(0) #當(dāng)前文件指針位置在0位 fr.writelines(["a","b"]) #把列表寫(xiě)入文件
文件修改
修改文件有兩種方式,一種是把文件內(nèi)容讀取到內(nèi)存,清空并重寫(xiě);第二種是把修改后的文件內(nèi)容寫(xiě)到一個(gè)新文件中;
第一種方式
1 with open("F:\\python_scripts\\py\\test.txt","r+") as fr: #以讀的方式打開(kāi) 2 res = fr.read() #讀取文件到內(nèi)存 3 new_res = res.replace("學(xué)習(xí)","study") #修改文件內(nèi)容 4 fr.write(new_res) #修改的內(nèi)容重寫(xiě)進(jìn)文件 5 print(new_res)
第二種方式
with open("test_1.txt","r") as fr, open("test_2.txt","w+") as fw: #同時(shí)打開(kāi)多個(gè)文件 for line in fr: #循環(huán)讀取每一行 new_line = line.replace("1","a") #把1改為a fw_new = fw.write(new_line) #把修改后的內(nèi)容寫(xiě)到fw里
另:
因文件流操作包含緩存機(jī)制,write方法不直接寫(xiě)入文件,而是先寫(xiě)入內(nèi)存的緩存區(qū),等緩存區(qū)滿了之后再寫(xiě)入文件,并清空緩存區(qū);
若要實(shí)時(shí)寫(xiě)入文件,就需要用到 f.flush()方法:
1 # 打開(kāi)文件 2 f = open("test.txt", "w+") 3 4 f.write("flush") 5 6 # 刷新緩沖區(qū),并寫(xiě)入文件 7 f.flush() 8 9 # 關(guān)閉文件 10 f.close()
以上是python讀寫(xiě)文件的方法有哪些的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。