You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中Python读取文本文件遇UnicodeDecodeError问题求助

问题分析与解决

错误含义

UnicodeDecodeError 是因为Python默认使用系统的charmap编码(Windows下通常为GBK)读取文件,但你的0_intro.txt实际采用的编码(比如UTF-8)中存在charmap无法识别的字节(0x9d),导致二进制字节转字符串时解码失败。

另外你的代码还有一处错误:intro_text.close 是无效操作,intro_text是readlines()返回的列表对象,没有close方法,应该调用文件对象intro_doc.close(),且必须加括号执行方法。

解决方案

1. 指定正确编码打开文件

直接在open函数中指定文件实际的编码(最常见的是UTF-8):

intro_doc = open("0_intro.txt", "r", encoding="utf-8")
intro_text = intro_doc.readlines()
print(intro_text)
intro_doc.close()  # 调用文件对象的close方法,注意加括号

2. 推荐使用with语句(自动管理文件资源)

with语句会在代码块结束后自动关闭文件,避免手动关闭的遗漏或错误:

with open("0_intro.txt", "r", encoding="utf-8") as intro_doc:
    intro_text = intro_doc.readlines()
    print(intro_text)
# 无需手动调用close,with块结束后文件自动关闭

3. 检测文件实际编码(不确定编码时)

如果不知道文件用的是什么编码,可以用chardet库检测:

  1. 先安装chardet:
pip install chardet
  1. 编写检测代码:
import chardet

with open("0_intro.txt", "rb") as f:
    detect_result = chardet.detect(f.read())
    print("文件编码为:", detect_result['encoding'])

得到编码后,用该编码替换上述代码中的encoding="utf-8"即可。

内容的提问来源于stack exchange,提问作者Matt D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 16:17:26