1. 程式人生 > 程式設計 >python讀寫檔案write和flush的實現方式

python讀寫檔案write和flush的實現方式

開啟檔案用open,該函式建立一個檔案物件,這將用來呼叫與之關聯的其他支援方式。

file object = open(file_name [,access_mode][,buffering])

下面是引數的詳細資訊:

file_name: file_name引數是一個字串值,包含您要訪問的檔案的名稱。

access_mode: access_mode決定了檔案必須被開啟,即,讀,寫,追加等的可能值是下表中給定的一個完整的列表的模式。這是可選引數,預設檔案存取方式為read (r)。

buffering: 如果緩衝值被設定為0時,沒有緩衝將發生。如果該緩衝值是1,行緩衝會在訪問一個檔案來執行。如果指定的緩衝值為大於1的整數,則緩衝作用將與所指示的緩衝區的大小進行。如果為負,則緩衝區的大小是系統預設(預設行為)。

這裡是開啟一個檔案的​​不同模式的列表:

模式 描述
r 開啟一個檔案為只讀。檔案指標置於該檔案的開頭。這是預設模式。
rb 開啟一個檔案只能以二進位制格式讀取。檔案指標置於該檔案的開頭。這是預設模式。
r+ 開啟用於讀取和寫入檔案。檔案指標將會在檔案的開頭。
rb+ 開啟用於讀取和寫入二進位制格式的檔案。檔案指標將會在檔案的開頭。
w 開啟一個檔案只寫。覆蓋該檔案,如果該檔案存在。如果該檔案不存在,則建立用於寫入一個新的檔案。
wb 開啟一個檔案只能以二進位制格式寫入。覆蓋該檔案,如果該檔案存在。如果該檔案不存在,則建立用於寫入一個新的檔案。
w+ 開啟用於寫入和讀取的檔案。覆蓋現有的檔案,如果檔案存在。如果該檔案不存在,則建立讀取和寫入新的檔案。
wb+ 開啟用於寫入和讀取的二進位制格式的檔案。覆蓋現有的檔案,如果檔案存在。如果該檔案不存在,則建立讀取和寫入新的檔案。
a 將開啟追加檔案。檔案指標是在檔案的結尾。也就是說,該檔案是在附加模式。如果該檔案不存在,它創造了寫入一個新的檔案。
ab 將開啟追加的二進位制格式的檔案。檔案指標在該檔案的結束。也就是說,該檔案為追加模式。如果該檔案不存在,它建立並寫入一個新的檔案。
a+ 開啟為追加和讀取檔案。檔案指標在該檔案的結束。該檔案將為追加模式。如果該檔案不存在,它建立並讀取和寫入的新檔案。
ab+ 開啟兩個追加和讀取的二進位制格式的檔案。檔案指標在該檔案的結束。該檔案將在追加模式。如果該檔案不存在,它建立並讀取和寫入的新檔案。

關閉檔案用close:

一個檔案物件的close()方法重新整理未寫入的資訊,並關閉該檔案的物件,在這之後沒有資料內容可以執行寫入。

寫入檔案用write:

write()方法寫入字串到任何一個開啟的檔案。要注意的是Python字串可以具有二進位制資料,而不僅僅是文字。

讀取檔案用read:

read()方法讀取一個開啟的檔案的字串。要注意的是Python字串可以具有二進位制資料,而不僅僅是文字。

需要注意的是:由於緩衝,字串可能實際上沒有出現在該檔案中,直到呼叫flush()或close()方法被呼叫.

一般的檔案流操作都包含緩衝機制,write方法並不直接將資料寫入檔案,而是先寫入記憶體中特定的緩衝區。

flush方法是用來重新整理緩衝區的,即將緩衝區中的資料立刻寫入檔案,同時清空緩衝區。

正常情況下緩衝區滿時,作業系統會自動將緩衝資料寫入到檔案中。

至於close方法,原理是內部先呼叫flush方法來重新整理緩衝區,再執行關閉操作,這樣即使緩衝區資料未滿也能保證資料的完整性。

如果程序意外退出或正常退出時而未執行檔案的close方法,緩衝區中的內容將會丟失。

以上這篇python讀寫檔案write和flush的實現方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。