VS Code中Python读取同目录文本文件触发UnicodeDecodeError问题求助
解决Python读取文本文件时的UnicodeDecodeError错误
这个错误本质是:Python默认用的编码(比如Windows系统下的charmap)没法识别你文本文件里的某些字符,那个0x9d字节在默认编码里找不到对应的字符映射,所以就抛出了解码失败的错误。
另外先提个小细节:你代码最后一行写的intro_text.close是错的——intro_text是读取到的文本列表,不是文件对象,应该调用intro_doc.close()(注意要加括号,因为close是方法)。不过更稳妥的写法是用with语句,它会自动帮你关闭文件,不用手动操心遗漏。
下面给你几个可行的解决办法:
指定正确编码打开文件
最常用的是UTF-8编码,直接修改open函数的参数即可:# 指定utf-8编码打开,同时用with语句自动管理文件 with open("0_intro.txt", "r", encoding="utf-8") as intro_doc: intro_text = intro_doc.readlines() print(intro_text)如果UTF-8不行,可以试试GBK、GB2312这类中文常用编码,根据文件的实际编码调整。
先检测文件的真实编码
如果你不确定文件用的是什么编码,可以用chardet库来检测:- 先安装库:
pip install chardet - 执行检测代码:
import chardet with open("0_intro.txt", "rb") as f: detect_result = chardet.detect(f.read()) print(f"文件检测出的编码是:{detect_result['encoding']}")拿到检测结果后,用对应的编码去打开文件就能解决问题了。
- 先安装库:
内容的提问来源于stack exchange,提问作者Matt D
相关产品推荐
相关产品推荐

