python開啟檔案方式
阿新 • • 發佈:2020-09-23
python中的open()函式用於開啟一個檔案,建立file物件,相關方法才可以呼叫它進行讀寫
語法:open(name,[,model[,buffering]])
模式 | 描述 |
---|---|
r | 以只讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。 |
rb | 以二進位制格式開啟一個檔案用於只讀。檔案指標將會放在檔案的開頭。這是預設模式。 |
r+ | 開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 |
rb+ | 以二進位制格式開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 |
w | 開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。 |
wb | 以二進位制格式開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。 |
w+ | 開啟一個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。 |
wb+ | 以二進位制格式開啟一個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。 |
a | 開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
ab | 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
a+ | 開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。 |
ab+ | 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。 |
1.讀檔案
如果檔案開啟成功,則顯示開啟檔案ex15_sample.txt的內容
最後一步呼叫close()方法關閉檔案,使用檔案完畢後必須關閉檔案。因為檔案物件會佔用作業系統資源,且作業系統同時開啟檔案數量有限
由於檔案讀寫會產生IO error ,如果報錯會導致後面的close()無法執行,所以為了保證是否出錯都能正確關閉檔案,可以使用try-finally 來實現
(ps:注意try-finally中的縮排問題)
2.使用with open函式開啟,以及常見的坑
#with作用就是呼叫close()方法
跟前面的try-finally實現功能一樣,但是程式碼更簡潔
file物件方法
- file.read(size):size未指定則返回整個檔案,如果檔案大小>2倍記憶體則有問題.f.read()讀到檔案尾時返回""(即空字串)。
- file.readline():每次讀取一行
- file.readlines([size]):一次性讀取所有內容並返回list
- for line in f:print(line) :通過迭代器訪問
- f.write("hello\n"):如果要寫入字串以外的資料,先將他轉換為字串
- f.tell():返回一個整數,表示當前檔案指標的位置(檔案頭的位元組數)
- 如果檔案小,用read()一次性讀取最方便,不確定大小建議用read(size)比較保險,如果是配置檔案使用readlines()最方便。
1.開啟非utf-8編碼的檔案
f=open('/users/wujing/desktop/test2020/ex15_sample.txt','r',encoding='gbk') f.read()
2.開啟二進位制檔案
讀取二進位制檔案,比如圖片、視訊等,用rb模式開啟即可
參考資料:https://blog.csdn.net/chenmozhe22/article/details/81434549