最近在搞文件分析時遇到一個比較頭疼的問題:文檔編碼不確定的時候該如何處理?
目前python好像還不能自動處理文檔編碼,在open方法打開一個文檔時,必須通過encoding參數指定編碼,這樣不符合我的要求。
網上搜尋一番後,看到有人說用chardet模塊,我試了下,貌似有點問題,不能解決我遇到的問題。
最終,我想了一個簡單粗暴的方法,巧用try/except語句來實現”僞自動“識別文檔編碼,代碼如下:
def getFileType(file_path):
FileType = "gbk"
try:
htmlf = open(file_path, 'r', encoding=FileType)
htmlf.read()
except UnicodeDecodeError:
FileType = "utf-8"
else:
htmlf.close()
return FileType
## 這裏只考慮了兩種常見編碼類型
## 在open方法中直接調用即可:open(files_path, 'r', encoding=getFileType(files_path))
如果你有更好的方法,不要吝嗇,分享出來給我學習學習。