1. 程式人生 > >解析文件格式采用chardet庫

解析文件格式采用chardet庫

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庫