第一部分:问题描述
我想要使用open函数打开我的txt文件:
错误信息如下:
第二部分:修改方法
问题出在文件的编码上。Python 默认使用系统的编码格式来读取文件,而我的文件是以 UTF-8 编码保存的,但 Python 使用了 GBK 编码来读取,导致了编码错误。
解决方案是明确指定文件的编码为 UTF-8。我们可以在 open()
函数中通过 encoding
参数指定编码。
也就是说,我们需要将“with open('机器学习英文单词.txt', 'r') as file:
”改为“with open('机器学习英文单词.txt', 'r', encoding='utf-8') as file:”
第三部分:代码实现和效果展示
(1)代码实现
# 打开文件
with open('机器学习英文单词.txt', 'r', encoding='utf-8') as file:
for line in file:
print(line.strip()) # strip()用于去掉每行末尾的换行符
(2)效果展示
第四部分:拓展补充
如果上述方法不行,那是因为我们改的编码方式还是不能用,所以我们需要知道到底打算读取的文件中的编码方式是什么:
使用以下代码:
import chardet
with open('机器学习英文单词汇总.csv', 'rb') as f:
result = chardet.detect(f.read()) # 读取一定量的数据进行编码检测
print(result['encoding']) # 打印检测到的编码
然后我们再针对输出结果进行改动就可以了:
这样是最稳妥,也是最根治的方法。
不会安装chardet库的话,看我博客:python安装chardet库检测读取文件的编码形式-CSDN博客