Python如何操作文件?Python基礎教程,第十二講,文件和流

說到文件和流,是所有編程語言必學技能了,可見重要程度多有高。想一下我們身邊有那些案例是程序操作文件?最常見的使用Atom打開一個文件,保存我寫的課件。Python項目中以文件的方式記錄日志,包括我們熟悉的操作數據庫,向數據庫里插入一條數據,其實也是向文件內寫了一行數據,我們看到視頻,上網瀏覽的網頁,都是對文件或者流的操作,這么重要的功能,一起好好學習一下吧!

學完此次課程,我能做什么?

學完此次課程,我們可以對文件進行操作。

學習此次課程,需要多久?

10-15分鐘

課程內容

打開一個文件

f = open(name, [,mode [,buffering]])

如果文件正常打開,返回文件對象

image

如果文件不存在,報如下錯誤!

image

打開模式

如果不指定任何模式,文件默認以只讀方式打開。

r:只讀模式(默認)

w:寫模式

a:追加模式

+:讀寫模式

b:二進制模式,例如聲音,視頻,圖像等

小知識點1:在Linux下,換行符是 \n, 而在Windows下?lián)Q行符是\r\n,在Mac下?lián)Q行符是 \r,顯然很容易記混,至少我每次換行的時候還要去試,在Python中,替我們考慮到這點,會自動根據平臺轉換,只需要記住換行使用“\n”換行了。

小知識點2:緩沖,open()函數的第三個參數是是否開啟緩沖,那緩沖的意義的是什么?大家都知道,內存的速度比硬盤要快很多,如果沒有開啟緩沖,程序寫入文件時,會直接針對硬盤操作。如果開啟了緩沖,程序會把內容先寫到內存,只有使用flush()或者close()函數時,才會將文件由內存寫入硬盤,這會讓程序的執(zhí)行速度更快,所以記住打開緩沖。

那么如何打開緩沖?

buffering = 0或者False 表示不開啟。

buffering = 1,-1,或者小于-1的數字表示開啟緩沖,緩沖區(qū)大小為系統(tǒng)默認值。

buffering > 1 表示自定義緩沖區(qū)大小,單位是字節(jié)。

寫入文件

image

寫入文件使用write()方法,直接添加寫入內容就可以了。

讀取文件

image

讀取文件內容使用read()函數,可選參數表示讀取字節(jié)數。當為空時表示讀取全部內容。

指定讀取文件的位置

我們可以使用 seek(offset[,whence])來指定光標的位置,也就是說我們可以指定從文件中讀取哪一段字符,或者將光標移動到某個位置,替換他后面的字符。有沒有感覺到很有用?

image

tell() 函數,像他的名字一樣,告訴我們光標所在的位置。

image

上面的Demo會輸出結果7,很簡單我們將光標seek到5的位置,寫入了兩個字符hi,那么現在光標的位置就是7。比較好理解吧?

readline() 函數,讀取一行

image

輸出結果為:0123456

小結

通過本節(jié)課的學習,我們掌握了非常重要的文件讀寫能力,建議大家認真練習一下。

接下來學習什么?

之前的十二節(jié)課都對著命令行,是不是有些乏味?下一節(jié)課我們將學習一下Python的界面庫,是不是很酷?像C++或者C#一樣強大,Python也可以實現跨平臺的桌面應用程序。

關注公眾號,回復 Python基礎 下載全部代碼+PDF版電子書

image
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容