码迷,mamicode.com
首页 > 其他好文 > 详细

解析文件格式采用chardet库

时间:2017-05-28 12:24:34      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:pytho   illegal   大于   can   pre   结果   判断   osi   har   

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库

标签:pytho   illegal   大于   can   pre   结果   判断   osi   har   

原文地址:http://www.cnblogs.com/jacobie2017/p/6915401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!