Python3 解决读取中文文件txt编码的问题


Posted in Python onDecember 20, 2019

问题描述

尝试用Python写一个Wordcloud的时候,出现了编码问题。

Python3 解决读取中文文件txt编码的问题

照着网上某些博客的说法添添改改后,结果是变成了“UnicodeDecodeError: ‘utf-8' codec can't decode byte…”这个错误。

捣鼓了一天啊,TXT(此处为本人现下内心表情)。最后,干脆写个最简单的文件读取,竟然还是报错。于是就考虑是不是txt的编码问题,因为读取的txt文件是在Mac上面新建的纯文本文件,一时没找到在哪里查看编码,最后拷贝到Windows系统上,查看了txt文件的编码,竟然是ASCII,不是我最爱的utf-8,Mac你辜负了我对你的一番信任啊!ε(┬┬?┬┬)3

解决方法

将txt文件的编码格式改为utf-8即可

此外,在打开文件的时候,要加上第三个参数encoding=‘utf8'(没有横杠)。

with open('./test3.txt','r',encoding='utf8') as fin:
  for line in fin.readlines():
    line = line.strip('\n')

下面附上第一次成功显示的词云的源码(参考网上他人的,注释很详细)

import jieba
import jieba.analyse
from matplotlib import pyplot as plt
from scipy.misc import imread
from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator
 
# 1.读取数据
with open("./test.txt","r",encoding="utf8") as f:
  text = f.read()
 
# 2.基于 TextRank 算法的关键词抽取,top50
keywords = jieba.analyse.textrank(text, topK=50, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
file = ",".join(keywords)
 
# 指定中文字体,不然中文显示框框
font = r'./HYQiHei-25J.ttf'
print(file)
# 指定背景图,随意
image = imread('cake.jpg')
wc = WordCloud(
  font_path=font,
  background_color='white',#背景色
  mask=image,#背景图
  stopwords=STOPWORDS,#设置停用词
  max_words=100,#设置最大文字数
  max_font_size=100,#设置最大字体
  width=800,
  height=1000,
 
)
 
#生成词云
image_colors = ImageColorGenerator(image)
wc.generate(file)
 
# 使用matplotlib,显示词云图
plt.imshow(wc) #显示词云图
plt.axis('off') #关闭坐标轴
plt.show()
# 保存图片
wc.to_file('news.png')

Python3 解决读取中文文件txt编码的问题

以上这篇Python3 解决读取中文文件txt编码的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python多线程编程中的join函数使用心得
Sep 02 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
Anaconda入门使用总结
Apr 05 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
Python Excel处理库openpyxl使用详解
May 09 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
May 29 Python
python安装requests库的实例代码
Jun 25 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
Python ArgumentParse的subparser用法说明
Apr 20 Python
如何表示python中的相对路径
Jul 08 Python
如何利用Python写个坦克大战
Nov 18 Python
用Python实现一个打字速度测试工具来测试你的手速
May 28 Python
python 类之间的参数传递方式
Dec 20 #Python
使用pyinstaller逆向.pyc文件
Dec 20 #Python
Python3 实现减少可调用对象的参数个数
Dec 20 #Python
python获取引用对象的个数方式
Dec 20 #Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 #Python
python 读写文件包含多种编码格式的解决方式
Dec 20 #Python
pandas 中对特征进行硬编码和onehot编码的实现
Dec 20 #Python
You might like
在普通HTTP上安全地传输密码
2007/07/21 PHP
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
php变量作用域的深入解析
2013/06/03 PHP
PHP类的反射用法实例
2014/11/03 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
基于jQuery中对数组进行操作的方法
2013/04/16 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
Python创建系统目录的方法
2015/03/11 Python
Python使用django搭建web开发环境
2017/06/09 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
家居设计专业个人自荐信范文
2013/11/26 职场文书
《记承天寺夜游》教学反思
2014/02/16 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
2014年党支部承诺书
2014/05/30 职场文书
离婚协议书格式
2014/11/21 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers