天天看點

python檔案讀寫_python--檔案讀寫

python檔案讀寫分為三步

打開檔案,擷取句柄;操作檔案;關閉檔案

檔案基本操作如下:

1 f = open("E:\\person_practice\\python\\test.txt","r") #打開檔案

2 fr = f.read() #讀取檔案

3 print(fr)

檔案打開時,需指定檔案路徑、打開方式,windows檔案路徑如果是“E:\person_practice\python\test.txt”,需要把"\"做轉移,或者改成:

"E:/person_practice/python/test.txt"

打開方式分為r、w、a三種方式 ,【+】表示可以同時讀寫

r  隻讀,預設模式

w  隻寫,不可讀,若檔案不存在則建立,若存在,則删除内容,寫入新内容

a  隻追加,不可讀,若檔案不存在則建立,存在則追加新内容

r+  可讀、可寫、可追加,若檔案不存在,則報錯

w+  可讀、可寫,若檔案存在,内容會被清空,可讀新寫入的内容

a+  可讀、可寫、可追加,若檔案存在,則追加新内容,讀時預設指針在檔案末尾,若需讀取整個檔案,需把指針歸零【f.seek(0)】

此種方式打開檔案,需要在使用結束後及時關閉檔案,可以使用【with】方法來解決:

with open("F:\\python_scripts\\py\\test.txt ","r") as fr:  #以r形式打開檔案for line infr:                   #一行一行讀取print(line)

此種方式會在使用完檔案句柄後,自動關閉該檔案。

常用檔案操作指令

fr.read() #讀取所有内容

fr.readline() #讀取一行

fr.readlines() #讀取所有檔案内容,傳回一個list

#以上三個指令在大檔案時慎用,會把内容讀到記憶體中,占用大記憶體

fr.seek(0) #目前檔案指針位置在0位

fr.writelines(["a","b"]) #把清單寫入檔案

檔案修改

修改檔案有兩種方式,一種是把檔案内容讀取到記憶體,清空并重寫;第二種是把修改後的檔案内容寫到一個新檔案中;

第一種方式

1 with open("F:\\python_scripts\\py\\test.txt","r+") as fr: #以讀的方式打開

2 res = fr.read() #讀取檔案到記憶體

3 new_res = res.replace("學習","study") #修改檔案内容

4 fr.write(new_res) #修改的内容重寫進檔案

5 print(new_res)

第二種方式

with open("test_1.txt","r") as fr, open("test_2.txt","w+") as fw: #同時打開多個檔案

for line in fr: #循環讀取每一行

new_line = line.replace("1","a") #把1改為a

fw_new = fw.write(new_line) #把修改後的内容寫到fw裡

另:

因檔案流操作包含緩存機制,write方法不直接寫入檔案,而是先寫入記憶體的緩存區,等緩存區滿了之後再寫入檔案,并清空緩存區;

若要實時寫入檔案,就需要用到 f.flush()方法:

1 #打開檔案

2 f = open("test.txt", "w+")3

4 f.write("flush")5

6 #重新整理緩沖區,并寫入檔案

7 f.flush()8

9 #關閉檔案

10 f.close()

參考資料見: http://www.nnzhp.cn/blog/2016/12/19/python%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B8%89%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E5%92%8C%E9%9B%86%E5%90%88/

繼續閱讀