python读取txt文件乱码问题的解决方案(python为什么读txt文件出错)

网友投稿 1874 2022-08-17

python读取txt文件乱码问题的解决方案(python为什么读txt文件出错)

python读取txt文件乱码问题的解决方案(python为什么读txt文件出错)

本文主要介绍python读取txt文件乱码的解决方案,有需要的朋友可以参考一下:

python2的编码实在是个头疼的问题,编码问题也将作为一个长期的话题,遇到问题随时补充。

这次的问题比较简单,是在做词云wordcloud的时候发现的,作用就是从文本文件中读取文字,将其制作成词云。部分代码如下:

import chardet

from wordcloud import WordCloud

import matplotlib.pyplot as plt

with open("C:\\Users\\fyc\\Desktop\\json.txt", "r") as f:

text = f.read()

type = chardet.detect(text)

text1 = text.decode(type["encoding"])

text2 = "".join(text1)

print text

print text1

print text2

wordcloud = WordCloud(

background_color="white",

width=1000,

height=860,

margin=2).generate(text2)

plt.imshow(wordcloud)

plt.axis("off")

plt.show()

我们只关注5,6,7,8这四行代码,我在14行打了断点,观察读取的内容

很明显,直接读取,text是str类型,完全是乱码,text1做了处理,显示正常。

在这我们隆重介绍 python 内建模块  chardet模块,编码检测。这个模块可以检测出一行字符是什么编码,我们看一下text的编码,如下:

chardet模块的detect方法返回一个字典,其中的“encoding",明显的指出,这个是”GB2312"编码,接下来我们会心一笑,可以用decode来解码了,解码完应该就是正常显示了。

所以我们用了上面的这一句,那么今后所有的读取文件地方,在显示之前,我们都可以用chardet检测一下字符串的编码,相应解码。就可以避免文件乱码的情况了。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python读取csv文件,并创建成字典(python读取数据文件)
下一篇:python读取excel文件并存储进列表(python从excel读取数据放在新列表)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~