在Python 2.4 中,必須轉換Unicode 文字在寫入文件之前轉換為位元組字串。 encode('utf8') 方法可用來將 Unicode 字串編碼為 UTF-8。若要將檔案內容讀取為 Unicode 對象,可以使用decode('utf8') 方法。
區分二進位檔案和文字檔案至關重要。二進位檔案盲目地按原樣儲存數據,而文字檔案則採用特定的字元編碼(通常是 UTF-8)。將 Unicode 物件寫入檔案時,指定所需的編碼以避免任何誤解非常重要。
Python 2.6 及更高版本中的 io 模組提供了 io.open 函數,它允許在開啟期間指定檔案的編碼。使用io.open,可以直接將檔案內容讀取為Unicode 物件:
<code class="python">import io f = io.open("test", mode="r", encoding="utf-8") text = f.read() # text is a Unicode object</code>
在Python 3.x 中,io.open 函數是內建open 函數的別名,它支援編碼參數:
<code class="python">open("test", mode="r", encoding="utf-8") # returns a Unicode-reading file object</code>
另一個選項是使用編解碼器中的open 函數module:
<code class="python">import codecs f = codecs.open("test", "r", "utf-8") text = f.read() # text is a Unicode object</code>
但是,值得注意的是,使用codecs. open 在混合read() 和readline() 操作時可能會導致問題。
UTF-8 是一種通用字元編碼,支援多種語言字元。預設情況下,Python 將檔案視為二進位流。明確指定編碼可讓 Python 將檔案內容正確解釋為 Unicode,從而避免字元解釋問題。
理解編碼和解碼的概念並使用適當的工具(io.open或codecs.open)在檔案中處理Unicode 文字時對於Python 中的無縫資料操作至關重要。
以上是如何在 Python 中讀取 Unicode (UTF-8) 文字並將其寫入檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!