Introduction

當存取外部檔案時,很容易因為不同的環境而產生編碼相關的錯誤(尤其是 Windows 作業系統),不管是用 Python 原生的 open/read 或是 Pandas 提供的 read_csv 方法,都可以再開檔的時候指定 encoding 參數解決這個問題。

假設要使用 utf-8 編碼方式存取檔案,使用方法如下:

File Open

1
2
3
4
5
6
7
8

encoding ='utf-8'

f =open('filename.txt','r', encoding=encoding)

text = f.read()

f.close()

Pandas

1
2
3
4
5
6

import pandas as pd

encoding ='utf-8'

df = pd.read_csv('filename.csv',encoding=encoding)

另外一種常見的問題是,可能不知道原始檔案的編碼方式為何,可以透過 chardet 工具來查詢:

1
2
3
4
5
6

import chardet

with open('filename.txt','rb')as f:

result = chardet.detect(f.read())

最後科普一下幾種常見的編碼格式:

  • Unicode/UTF8:萬國碼,可支援多種語言的編碼格式

  • ISO-8859-1/latin1:主要用於歐系國家的文字

  • Big5:繁體中文

  • GBK:簡體中文

  • cp950:windows 預設的編碼


License


本著作由 Chang, Wei-Yaun (v123582) 製作,
創用CC 姓名標示-相同方式分享 3.0 Unported授權條款釋出。