解析文件格式采用chardet庫
阿新 • • 發佈:2017-05-28
html illegal info utf-8 posit read encoding 當我 enc
http://www.cnblogs.com/ArsenalfanInECNU/p/4811643.html
1、python 讀取文件時報錯UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x80 in position 205: illegal multibyte sequence
解決方法:file_handle = open(‘order.log‘,‘rb‘)
2、當我們不知道文件格式咋辦呢
import chardet f=open(‘文件路徑‘,‘rb‘) f_read=f.read() f_charInfo=chardet.detect(f_read)
f_charInfo的輸出是這樣的的一個字典{‘encoding‘: ‘utf-8‘, ‘language‘: ‘‘, ‘confidence‘: 0.99}
‘confidence’是置信概率,後面是推斷出的編碼方式。以上的結果,意思為推斷這段字符串的編碼方式為‘utf-8‘的概率為99%.
經過測試,如果文件裏的字符串比較少的話,chardet模塊是比較難判斷出正確的編碼模式的,體現在置信概率比較小,字符串多的話,概率會大。我覺得至少大於90%才可信。
得到編碼方式後,就可以用來解碼了。
f_read_decode=f_read.decode(f_charInfo[‘encoding‘]) print(f_read_decode)
解析文件格式采用chardet庫