Python读文件及chardet检测编码错误

  • A+
所属分类:Python

Python读文件及chardet检测编码错误

python读文本文件

python在读取txt等文本文件时可以用f.read()f.read() f.readlines() f.readline(),但在读大文件时,不要用f.read() f.readlines(),因为他们会将文件内容全部加载进来,费时费内存。其实with open(path, 'r') as f执行后,f本身就是一个迭代器,我们可以这样做:

在for循环中,执行一次,只会加载进一行数据,下次执行时,才会加载下一行,速度快,占内存少。

chardet检测编码

chardet是一个第三方库,可以检测未知文件中的字符编码,但我认为不靠谱,结果仅供参考。

本次实验中,用到的文本文件是含有中文字符的。检测代码如下:

检测结果:

但文本中含有中文,可能是ASCII编码。运行上方python读文本文件的代码,报错:

实际上,此文本文件用的是GBK编码,open函数中参数设为encoding='gbk',执行结果一切正常。

LTXU

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: