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()


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部