python文件读取报错UnicodeDecodeError,该如何处理?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
使用python
读写一个已知文件的时候,可能会报错不能识别的格式。那么该如何处理呢?
大家好,我是苏南大叔,欢迎阅读苏南大叔的“程序如何灵动”博客。本文中,苏南大叔将要描述一个非常常见的python
文件读写,指定格式的问题。
本文测试环境:win10
,python@3.6.8
。
报错信息
测试代码如下:
with open('data/stopwords.txt', 'r') as f:
lines_list = f.readlines()
报错信息如下:
UnicodeDecodeError: 'gbk' codec can't decode byte 0x9c in position 7: illegal multibyte sequence
解决方案
解决方案很简单,在open
函数中添加第三个参数encoding
。当然一般来说,encoding
都是utf8
,而代码中默认使用了gbk
处理。关键代码如下:
encoding='UTF-8'
测试代码变成如下所示:
with open('data/stopwords.txt', 'r', encoding='UTF-8') as f:
lines_list = f.readlines()
测试成功,解决问题。
下面的代码是另外一个写法的例子:
import os
_path = os.path.join(os.getcwd(), "data/stopwords.txt")
text = open(_path, 'r', encoding='UTF-8').read()
这里还有一个新的写法:
stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]
相关链接
总结
挺常见的报错情况,在打开一个文件的时候,指定一下字符集utf8
。当然,也不排除字符集是比较不常见的gbk
的情况,这里不抬杠啊。大家根据自己的实际情况修改即可。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。