文件與IO-5.1 讀寫文件數據

Q:讀寫各種不同編碼的文本數據,比如 ASCII,UTF-8 或 UTF-16 編碼等。

Photo by Ishaq Robin on Unsplash

Answer

使用帶有 rt 模式的 open() 函數讀取文本文件。如下示範:

相同的,如果寫入一個文本文件,使用帶有 wt 模式的 open() 函數,如果之前文 件內容存在則清除並覆蓋掉。如下示範:

如果不想覆寫原本的內容,使用模式爲 at 的 open() 函數。

文件的讀寫操作默認使用系統編碼,可以通過調用 sys.getdefaultencoding() 來 得到。在大多數機器上面都是 utf-8 編碼。如果你已經知道你要讀寫的文本是其他編碼 方式,那麼可以通過傳遞一個可選的 encoding 參數給 open() 函數。如下所示:

Discuss

讀寫文本文件一般來講是比較簡單的。但是也幾點是需要注意的。首先,在範例程式中的 with 語句給被使用到的文件創建了一個上下文環境,但 with 控制塊結束時, 文件會自動關閉(釋放記憶體)。你也可以不使用 with 語句,但是這時候你就必須記得手動關閉文件:

--

--