1. 程式人生 > >python讀寫文件write和flush

python讀寫文件write和flush

open 結束 兩個 就是 必須 打開 退出 int 寫入文件

打開文件用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