python讀寫文件write和flush的實現方式
打開文件用open,該函數創(chuàng)建一個文件對象,這將用來調用與之關聯的其他支持方式。
file object = open(file_name [, access_mode][, buffering])
下面是參數的詳細信息:
file_name: file_name參數是一個字符串值,包含您要訪問的文件的名稱。
access_mode: access_mode決定了文件必須被打開,即,讀,寫,追加等的可能值是下表中給定的一個完整的列表的模式。這是可選參數,默認文件存取方式為read (r)。
buffering: 如果緩沖值被設置為0時,沒有緩沖將發(fā)生。如果該緩沖值是1,行緩沖會在訪問一個文件來執(zhí)行。如果指定的緩沖值為大于1的整數,則緩沖作用將與所指示的緩沖區(qū)的大小進行。如果為負,則緩沖區(qū)的大小是系統(tǒng)默認(默認行為)。
這里是打開一個文件的不同模式的列表:
| 模式 | 描述 |
|---|---|
| r | 打開一個文件為只讀。文件指針置于該文件的開頭。這是默認模式。 |
| rb | 打開一個文件只能以二進制格式讀取。文件指針置于該文件的開頭。這是默認模式。 |
| r+ | 打開用于讀取和寫入文件。文件指針將會在文件的開頭。 |
| rb+ | 打開用于讀取和寫入二進制格式的文件。文件指針將會在文件的開頭。 |
| w | 打開一個文件只寫。覆蓋該文件,如果該文件存在。如果該文件不存在,則創(chuàng)建用于寫入一個新的文件。 |
| wb | 打開一個文件只能以二進制格式寫入。覆蓋該文件,如果該文件存在。如果該文件不存在,則創(chuàng)建用于寫入一個新的文件。 |
| w+ | 打開用于寫入和讀取的文件。覆蓋現有的文件,如果文件存在。如果該文件不存在,則創(chuàng)建讀取和寫入新的文件。 |
| wb+ | 打開用于寫入和讀取的二進制格式的文件。覆蓋現有的文件,如果文件存在。如果該文件不存在,則創(chuàng)建讀取和寫入新的文件。 |
| a | 將打開追加文件。文件指針是在文件的結尾。也就是說,該文件是在附加模式。如果該文件不存在,它創(chuàng)造了寫入一個新的文件。 |
| ab | 將打開追加的二進制格式的文件。文件指針在該文件的結束。也就是說,該文件為追加模式。如果該文件不存在,它創(chuàng)建并寫入一個新的文件。 |
| a+ | 打開為追加和讀取文件。文件指針在該文件的結束。該文件將為追加模式。如果該文件不存在,它創(chuàng)建并讀取和寫入的新文件。 |
| ab+ | 打開兩個追加和讀取的二進制格式的文件。文件指針在該文件的結束。該文件將在追加模式。如果該文件不存在,它創(chuàng)建并讀取和寫入的新文件。 |
關閉文件用close:
一個文件對象的close()方法刷新未寫入的信息,并關閉該文件的對象,在這之后沒有數據內容可以執(zhí)行寫入。
寫入文件用write:
write()方法寫入字符串到任何一個打開的文件。要注意的是Python字符串可以具有二進制數據,而不僅僅是文字。
讀取文件用read:
read()方法讀取一個打開的文件的字符串。要注意的是Python字符串可以具有二進制數據,而不僅僅是文本。
需要注意的是:由于緩沖,字符串可能實際上沒有出現在該文件中,直到調用flush()或close()方法被調用.
一般的文件流操作都包含緩沖機制,write方法并不直接將數據寫入文件,而是先寫入內存中特定的緩沖區(qū)。
flush方法是用來刷新緩沖區(qū)的,即將緩沖區(qū)中的數據立刻寫入文件,同時清空緩沖區(qū)。
正常情況下緩沖區(qū)滿時,操作系統(tǒng)會自動將緩沖數據寫入到文件中。
至于close方法,原理是內部先調用flush方法來刷新緩沖區(qū),再執(zhí)行關閉操作,這樣即使緩沖區(qū)數據未滿也能保證數據的完整性。
如果進程意外退出或正常退出時而未執(zhí)行文件的close方法,緩沖區(qū)中的內容將會丟失。
以上這篇python讀寫文件write和flush的實現方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

