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制作CSDN免积分下载器
Mar 10 Python
在Python的框架中为MySQL实现restful接口的教程
Apr 08 Python
Python实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
Python3 修改默认环境的方法
Feb 16 Python
python爬虫刷访问量 2019 7月
Aug 01 Python
浅谈Python类中的self到底是干啥的
Nov 11 Python
Pytorch中膨胀卷积的用法详解
Jan 07 Python
基于python图像处理API的使用示例
Apr 03 Python
通过Python实现一个简单的html页面
May 16 Python
python 如何调用远程接口
Sep 11 Python
python中xlrd模块的使用详解
Feb 01 Python
Python的代理类实现,控制访问和修改属性的权限你都了解吗
Mar 21 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
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
2014/05/28 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
Python 专题四 文件基础知识
2017/03/20 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
Jones New York官网:美国女装品牌,受白领女性欢迎
2019/11/26 全球购物
大学军训通讯稿
2014/01/13 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
九九重阳节标语
2014/10/07 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
基层党支部承诺书
2015/04/30 职场文书
《小小的船》教学反思
2016/02/18 职场文书
2016年大学生党员承诺书
2016/03/24 职场文书
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js