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 相关文章推荐
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 Python
Python SMTP发送邮件遇到的一些问题及解决办法
Oct 24 Python
Django JWT Token RestfulAPI用户认证详解
Jan 23 Python
python实现小球弹跳效果
May 10 Python
python Django的web开发实例(入门)
Jul 31 Python
Python基本类型的连接组合和互相转换方式(13种)
Dec 16 Python
django在开发中取消外键约束的实现
May 20 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
python 使用csv模块读写csv格式文件的示例
Dec 02 Python
详解Python遍历列表时删除元素的正确做法
Jan 07 Python
使用Python爬虫爬取小红书完完整整的全过程
Jan 19 Python
python tqdm用法及实例详解
Jun 16 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
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
php实现简单加入购物车功能
2017/03/07 PHP
PHP设计模式之单例模式原理与实现方法分析
2018/04/25 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
js 图片轮播(5张图片)
2008/12/30 Javascript
Mootools 1.2教程 函数
2009/09/15 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
document.createElement()用法
2013/03/13 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
基于require.js的使用(实例讲解)
2017/09/07 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
深入了解JavaScript 防抖和节流
2019/09/12 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
Python简单生成8位随机密码的方法
2017/05/24 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
python实现自动登录
2018/09/17 Python
python实现换位加密算法的示例
2018/10/14 Python
python 杀死自身进程的实现方法
2019/07/01 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
python装饰器原理与用法深入详解
2019/12/19 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
自我鉴定书面格式
2014/01/13 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
党校党性分析材料
2014/12/19 职场文书
运动会通讯稿300字
2015/07/20 职场文书
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA