2018年1月20日 星期六

Python讀寫utf-8的文字檔

Python開啟文字檔的時候,encoding這個參數是大家比較不常用的:
with open(f_name, 'w', encoding='utf-8') as f_out:
    ....
    ....
encoding是指文字檔的編碼。如果要讀寫utf-8的文字檔,編碼會是以下兩者之一:
  • encoding='utf-8':純utf-8文字檔 (常見於linux)
  • encoding='utf-8-sig':檔案開頭有加BOM (常見於Windows上的utf-8檔)
在讀檔時,如果用其中一者開啟失敗,可以換一個試看看。

encoding如果不指定,會是作業系統的預設選項 (使用者應該可以改,但我沒試過)。如果在linux系列,多半會是utf-8 (有不是的嗎?);如果在較舊的Windows,則是 big5/cp950 。當我們的程式碼可能在多個平台執行時,最好把encoding作明確的設定,免得在讀寫共用的文字檔案時,因為encoding而發生執行錯誤。

沒有留言:

張貼留言