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

VS Code中Python读取同目录文本文件时触发UnicodeDecodeError错误的解决方案求助

解决Python读取文本文件时的UnicodeDecodeError问题

这个问题我之前踩过一模一样的坑!咱们一步步把它捋清楚:

错误原因

你碰到的UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d...,核心原因是文件的实际编码和Python默认使用的解码编码不匹配。

在Windows系统里,Python默认会用系统自带的charmap编码(比如GBK这类)去读取文本文件,但你的0_intro.txt大概率是用UTF-8编码保存的,文件里存在charmap编码无法识别的特殊字符(就是报错里的0x9d字节),自然就解码失败了。

另外还要揪出你代码里的小错误:intro_text.close是完全不对的——close()是文件对象的方法,你应该调用intro_doc.close()(注意要加括号,而且是操作打开的文件对象intro_doc,不是读取后的文本变量intro_text)。

解决方法

方法1:指定编码读取

打开文件时直接加上encoding="utf-8"参数,强制用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语句会自动帮你处理文件的打开和关闭,不用手动调用close(),还能避免异常情况下文件没关闭的问题,写法更简洁安全:

with open("0_intro.txt", "r", encoding="utf-8") as intro_doc:
    intro_text = intro_doc.readlines()
    print(intro_text)
# 代码块结束后,文件会自动关闭,不用额外操作

如果UTF-8还是报错,你可以试试encoding="utf-8-sig"(用来处理带BOM的UTF-8文件),或者打开VS Code看一下文件右下角显示的编码(点击可以切换),然后用对应的编码参数就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 11:17:27