python檔案讀寫操作(r/r+/rb/w/w+/wb/a/a+/ab)
一、核心功能
‘r’:只讀。該檔案必須已存在。
‘r+’:可讀可寫。該檔案必須已存在,寫為追加在檔案內容末尾。
‘rb’:表示以二進位制方式讀取檔案。該檔案必須已存在。
‘w’:只寫。開啟即預設建立一個新檔案,如果檔案已存在,則覆蓋寫(即檔案內原始資料會被新寫入的資料清空覆蓋)。
‘w+’:寫讀。開啟建立新檔案並寫入資料,如果檔案已存在,則覆蓋寫。
‘wb’:表示以二進位制寫方式開啟,只能寫檔案, 如果檔案不存在,建立該檔案;如果檔案已存在,則覆蓋寫。
‘a’:追加寫。若開啟的是已有檔案則直接對已有檔案操作,若開啟檔案不存在則建立新檔案,只能執行寫(追加在後面),不能讀。
‘a+’:追加讀寫。開啟檔案方式與寫入方式和'a'一樣,但是可以讀。需注意的是你若剛用‘a+’開啟一個檔案,一般不能直接讀取,因為此時游標已經是檔案末尾,除非你把游標移動到初始位置或任意非末尾的位置。(可使用seek() 方法解決這個問題)
二、示例解說
Model 1: r ---只讀模式
注意:test2.txt 必須檔案是已存在的。順便說一下字元編碼。因為Windows作業系統預設字元編碼為GBK,而Python預設Unicode.utf-8,如果不寫“ encoding=‘utf-8' "就會報錯。
Model 2: r+ ---可讀可寫模式
Model 3: rb ---以二進位制方式讀取檔案
Model 4: w ---只寫模式
Model 5: w+ ---寫讀模式
Model 6: wb+ ---以二進位制方式讀寫檔案
Model 7: a ---追加寫模式
Model 8: a+ ---追加讀寫模式
三、附加乾貨
以下是檔案操作中常用的一些方法:
print(f.readline()) # 列印一行
print(f.readline(5)) # 列印前5個字元
print(f.tell()) # 列印當前指標位置
print(f.read()) # 讀完檔案後,指標在最尾處
f.seek(0) # 如要重頭到尾再讀,檔案指標須先回到檔案頭(0-檔案頭,預設值; 1-當前位置; 2-檔案尾)
print(f.read()) # 重讀檔案
print(f.encoding) # 列印當前使用的字元編碼
print(f.name) # 列印檔名
print(f.flush()) # 重新整理
f.truncate() # 清空檔案
f.truncate(12) # 從頭開始,第12個字元後截斷並清除
f.close() # 關閉檔案