您當前的位置:首頁 > 詩詞

如何學python-第十六課 基礎檔案操作

作者:由 李三思 發表于 詩詞時間:2016-08-16

今天我們來說說檔案操作。檔案操作在程式編寫裡有著舉足輕重的作用。檔案操作,主要包含檔案的輸入和輸出。學會了檔案操作,就可以寫出更符合實際需求的指令碼。

我會先介紹兩種主要的I/O模式,然後介紹一下檔案的手動opening和closing。最後,介紹更加自動化的操作方式。

兩種主要I/O

操作

有好多方式進行檔案I/O操作。不過,最常使用的還是其中的兩種。一種是讀檔案(‘r’),另一種是寫檔案(‘w’)。這兩個操作的含義就是字面意思,從檔案讀資料和向檔案寫資料。

注意

標準的寫操作會把檔案覆蓋(這意味著原有的檔案內容會丟失)。想要在檔案後面增加內容而不影響原有的內容,也是可以的。在後面會說到這點。

手動檔案I/O

操作

當我們進行檔案I/O操作的時候,最好別用這種方式進行檔案操作。舉例來說,錯誤的關閉檔案可能會導致一些嚴重的錯誤。雖然這不是推薦的操作,但是卻很適合用來入門。

我們首先演示寫檔案。(

此演示在linux下進行

)首先建立一個叫做file的檔案,然後在裡面寫上(只是用文字編輯器開啟和寫入)”Hello,Null Byte!”。

如何學python-第十六課 基礎檔案操作

如何學python-第十六課 基礎檔案操作

現在我們有了個檔案。在進行檔案寫操作的時候,首先要在python裡開啟這個檔案。這個過程會建立一個物件,所以我們需要用一個變數把這個物件存進去。在例子中,我們用變數‘file’來存貯這個物件。

當我們開啟檔案的時候,需要使用open()函式,並對傳入檔案路徑和要進行什麼樣的檔案操作。看例子:

如何學python-第十六課 基礎檔案操作

如何學python-第十六課 基礎檔案操作

我們此時已經透過只讀方式打開了檔案。現在來透過列印變數file的內容來看看到底讀到了什麼:

如何學python-第十六課 基礎檔案操作

如何學python-第十六課 基礎檔案操作

我們可以看到除了讀到檔案內容之外,還有一行空白。這其實是換行符\n。現在我們成功的讀到了檔案,

一定一定要記得把檔案關上。

如果不關閉檔案,就會導致一些錯誤,檔案也可能會被損壞。我們可以用。close()方法來關閉檔案物件。

如何學python-第十六課 基礎檔案操作

如何學python-第十六課 基礎檔案操作

現在,我們已經成功的開啟、讀、關閉了檔案。下面來試試寫檔案。

寫檔案只要把open()的第二個引數換成’w’就可以了。向檔案‘file’中寫入”Hello,world!\n”:

如何學python-第十六課 基礎檔案操作

如何學python-第十六課 基礎檔案操作

記得手動加上\n,然後是檔案的關閉操作。現在再看看檔案裡的內容:

如何學python-第十六課 基礎檔案操作

如何學python-第十六課 基礎檔案操作

好了,這就是手動操作檔案的全部內容。

自動檔案I/O

操作

‘自動’,意味著不再需要手動開啟或者關閉檔案。我們可以用with關鍵字和as關鍵字來開啟和關閉檔案。這麼做的格式是

with open(‘

檔案路徑’,‘

操作方式’) as

儲存檔案的變數名

如何學python-第十六課 基礎檔案操作

如何學python-第十六課 基礎檔案操作

你可能注意到提示符的樣子從>>>變成了… 這是因為使用with和as關鍵字的時候,所有的io操作都必須在with/as的body部分裡。

如何學python-第十六課 基礎檔案操作

如何學python-第十六課 基礎檔案操作

這樣就不用手動關閉檔案了。下面演示一下寫操作:

如何學python-第十六課 基礎檔案操作

如何學python-第十六課 基礎檔案操作

現在來看看檔案寫進去了沒:

如何學python-第十六課 基礎檔案操作

如何學python-第十六課 基礎檔案操作

open的第二個引數還可以是以下幾種,基本大同小異,可以自行嘗試:

w 以寫方式開啟,

a 以追加模式開啟 (從 EOF 開始, 必要時建立新檔案)

r+ 以讀寫模式開啟

w+ 以讀寫模式開啟 (參見 w )

a+ 以讀寫模式開啟 (參見 a )

rb 以二進位制讀模式開啟

wb 以二進位制寫模式開啟 (參見 w )

ab 以二進位制追加模式開啟 (參見 a )

rb+ 以二進位制讀寫模式開啟 (參見 r+ )

wb+ 以二進位制讀寫模式開啟 (參見 w+ )

ab+ 以二進位制讀寫模式開啟 (參見 a+ )

總結

今天學了些挺有用的東西,希望大家都能看得懂。不久之後我們會學習一些更復雜的io操作。

======================================================================

英文原版請看:

http://

null-byte。wonderhowto。com

/how-to/python-training/

由於教程仍在翻譯過程中,在整套教程完結前,感興趣的同學請關注我的微信訂閱號(xuanhun521,下方二維碼),我會第一時間在訂閱號推送圖文教程和影片教程。問題討論請加qq群:Hacking (1群):303242737 Hacking (2群):147098303。

點選開啟二維碼

關注之後,請回復“Python”,獲取更多內容。

標簽: 檔案  操作  開啟  模式  讀寫