python 文件编码的识别_【python】python编码方式,chardet编码识别库
环境:
python3.6
需求:
针对于打开一个文件,可以读取到文本的编码方式,根据默认的文件编码方式来获取文件,就不会出现乱码。
针对这种需求,python中有这个方式可以很好的解决:
解决策略:
chardet是一个非常优秀的编码识别模块。
chardet 是python的第三方库,需要下载和安装。
下载地址:
安装事项:
如果采用源代码安装方法,有可能会提示缺少setuptools这个模块。
因此这里我们采用另外一种更为方便的安装方法,不论你选择哪种安装包,将它解压得到其中的文件夹【chardet】将这个文件夹复制到【python安装根目录\Lib\site-packages】下,确保这个位置可以被python引用到。
如果不能被引用到请加入环境变量。【这在windows和linux下都是适用的】
开始本文:
因使用pycharm做python的开发工作,所以使用pycharm下载安装是个更高效的选择!!
1.使用pycharm安装chardet第三方库。
左上角File->Default Settings->进入Project Interpreter【工程翻译???什么鬼,Project Depend比较贴切吧】
2.查找chardet
注意是chardet不是charset
安装成功
3.开始使用chardet查看文件文本内容的编码方式
代码:【注意,open需要指定打开模式为'b'二进制打开,并且需要'rb'或'wb'或其他组合方式,仅使用'b'模式不够】
importchardet
fileName= 'E:/2/采集数据_pswf12_180大0小35750_20181206.txt'currentFile= open(fileName,mode='rb')
content=currentFile.read()print(chardet.detect(content))
查看结果:
编码方式为utf-8的概率为99%
使用chardet判断编码方式后,就可以放心采用本种编码方式去去读取文本内容而不怕报错或乱码
importchardet
fileName= 'E:/2/采集数据_pswf12_180大0小35750_20181206.txt'
#按照二进制只读模式 打开文件 读取并解析文本内容的编码方式
currentFile = open(fileName,mode='rb')
content=currentFile.read()print(chardet.detect(content))#按照编码方式为 UTF-8读取整个文本内容
currentFile = open(fileName,encoding='utf-8')
content=currentFile.read()print(content)#关闭文件
currentFile.close()
4.按行读取,更快
importchardet
fileName= 'E:/2/采集数据_pswf12_180大0小35750_20181206.txt'
#按照二进制只读模式 打开文件 仅读取一行 并解析文本内容的编码方式
currentFile = open(fileName,mode='rb')
content=currentFile.readline()print(chardet.detect(content))#按照编码方式为 UTF-8 按行读取 整个文本内容
currentFile = open(fileName,encoding='utf-8')
line=currentFile.readline()whileline:print(line)
line=currentFile.readline()#关闭文件
currentFile.close()
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
