python讀寫文件write和flush的實現(xiàn)方式
打開文件用open,該函數(shù)創(chuàng)建一個文件對象,這將用來調(diào)用與之關(guān)聯(lián)的其他支持方式。
file object = open(file_name [, access_mode][, buffering])
下面是參數(shù)的詳細(xì)信息:
file_name: file_name參數(shù)是一個字符串值,包含您要訪問的文件的名稱。
access_mode: access_mode決定了文件必須被打開,即,讀,寫,追加等的可能值是下表中給定的一個完整的列表的模式。這是可選參數(shù),默認(rèn)文件存取方式為read (r)。
buffering: 如果緩沖值被設(shè)置為0時,沒有緩沖將發(fā)生。如果該緩沖值是1,行緩沖會在訪問一個文件來執(zhí)行。如果指定的緩沖值為大于1的整數(shù),則緩沖作用將與所指示的緩沖區(qū)的大小進(jìn)行。如果為負(fù),則緩沖區(qū)的大小是系統(tǒng)默認(rèn)(默認(rèn)行為)。
這里是打開一個文件的不同模式的列表:
模式 | 描述 |
---|---|
r | 打開一個文件為只讀。文件指針置于該文件的開頭。這是默認(rèn)模式。 |
rb | 打開一個文件只能以二進(jìn)制格式讀取。文件指針置于該文件的開頭。這是默認(rèn)模式。 |
r+ | 打開用于讀取和寫入文件。文件指針將會在文件的開頭。 |
rb+ | 打開用于讀取和寫入二進(jìn)制格式的文件。文件指針將會在文件的開頭。 |
w | 打開一個文件只寫。覆蓋該文件,如果該文件存在。如果該文件不存在,則創(chuàng)建用于寫入一個新的文件。 |
wb | 打開一個文件只能以二進(jìn)制格式寫入。覆蓋該文件,如果該文件存在。如果該文件不存在,則創(chuàng)建用于寫入一個新的文件。 |
w+ | 打開用于寫入和讀取的文件。覆蓋現(xiàn)有的文件,如果文件存在。如果該文件不存在,則創(chuàng)建讀取和寫入新的文件。 |
wb+ | 打開用于寫入和讀取的二進(jìn)制格式的文件。覆蓋現(xiàn)有的文件,如果文件存在。如果該文件不存在,則創(chuàng)建讀取和寫入新的文件。 |
a | 將打開追加文件。文件指針是在文件的結(jié)尾。也就是說,該文件是在附加模式。如果該文件不存在,它創(chuàng)造了寫入一個新的文件。 |
ab | 將打開追加的二進(jìn)制格式的文件。文件指針在該文件的結(jié)束。也就是說,該文件為追加模式。如果該文件不存在,它創(chuàng)建并寫入一個新的文件。 |
a+ | 打開為追加和讀取文件。文件指針在該文件的結(jié)束。該文件將為追加模式。如果該文件不存在,它創(chuàng)建并讀取和寫入的新文件。 |
ab+ | 打開兩個追加和讀取的二進(jìn)制格式的文件。文件指針在該文件的結(jié)束。該文件將在追加模式。如果該文件不存在,它創(chuàng)建并讀取和寫入的新文件。 |
關(guān)閉文件用close:
一個文件對象的close()方法刷新未寫入的信息,并關(guān)閉該文件的對象,在這之后沒有數(shù)據(jù)內(nèi)容可以執(zhí)行寫入。
寫入文件用write:
write()方法寫入字符串到任何一個打開的文件。要注意的是Python字符串可以具有二進(jìn)制數(shù)據(jù),而不僅僅是文字。
讀取文件用read:
read()方法讀取一個打開的文件的字符串。要注意的是Python字符串可以具有二進(jìn)制數(shù)據(jù),而不僅僅是文本。
需要注意的是:由于緩沖,字符串可能實際上沒有出現(xiàn)在該文件中,直到調(diào)用flush()或close()方法被調(diào)用.
一般的文件流操作都包含緩沖機制,write方法并不直接將數(shù)據(jù)寫入文件,而是先寫入內(nèi)存中特定的緩沖區(qū)。
flush方法是用來刷新緩沖區(qū)的,即將緩沖區(qū)中的數(shù)據(jù)立刻寫入文件,同時清空緩沖區(qū)。
正常情況下緩沖區(qū)滿時,操作系統(tǒng)會自動將緩沖數(shù)據(jù)寫入到文件中。
至于close方法,原理是內(nèi)部先調(diào)用flush方法來刷新緩沖區(qū),再執(zhí)行關(guān)閉操作,這樣即使緩沖區(qū)數(shù)據(jù)未滿也能保證數(shù)據(jù)的完整性。
如果進(jìn)程意外退出或正常退出時而未執(zhí)行文件的close方法,緩沖區(qū)中的內(nèi)容將會丟失。
以上這篇python讀寫文件write和flush的實現(xiàn)方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python判斷一個數(shù)是否能被另一個整數(shù)整除的實例
今天小編就為大家分享一篇python判斷一個數(shù)是否能被另一個整數(shù)整除的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12python topN 取最大的N個數(shù)或最小的N個數(shù)方法
今天小編就為大家分享一篇python topN 取最大的N個數(shù)或最小的N個數(shù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06淺談哪個Python庫才最適合做數(shù)據(jù)可視化
數(shù)據(jù)可視化是任何探索性數(shù)據(jù)分析或報告的關(guān)鍵步驟,目前有許多非常好的商業(yè)智能工具,比如Tableau、googledatastudio和PowerBI等,本文就詳細(xì)的進(jìn)行對比,感興趣的可以了解一下2021-06-06使用Python和XML實現(xiàn)文件復(fù)制工具的完整代碼
在本篇博客中,我們將學(xué)習(xí)如何使用 wxPython 構(gòu)建一個簡單的文件復(fù)制工具,并將文件路徑和目標(biāo)目錄的配置信息保存到 XML 文件中,通過這種方式,我們可以在下次運行程序時輕松加載之前保存的配置,需要的朋友可以參考下2024-08-08