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

Python使用Path.read_text()读取文件报charmap解码错误如何解决

核心错误原因

你把encoding参数传错位置了。
Path构造函数本身不接收encoding参数,你写在Path('myfile.txt', encoding='utf-8')里的encoding参数会被Python直接忽略,完全不会生效。后续调用read_text()时没有传入编码参数,就会自动使用系统默认编码(从报错看你当前环境默认是cp1252)读取文件,自然触发Unicode解码错误,这也是你看了很多加编码的方案却没解决问题的核心原因。

正确写法

把encoding参数移到read_text()方法的参数列表中即可:

from pathlib import Path
paragraph = Path('myfile.txt').read_text(encoding='utf-8')
补充排查方案

如果改完参数位置仍然报错,可以按以下顺序排查:

  • 先确认myfile.txt的实际存储编码确实是UTF-8,不是GBK、GB2312、Latin1等其他编码,可以直接用系统自带记事本打开文件,查看窗口右下角标注的编码格式,替换成对应编码参数即可
  • 如果文件中存在少量无法识别的异常字符、不需要严格100%还原内容,可以添加errors参数跳过异常,比如read_text(encoding='utf-8', errors='replace')会把无法解码的字符替换为特殊占位符,不会直接中断程序抛出错误
  • 确认传入的文件路径正确,避免程序读取到其他目录下的同名非目标文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 21:54:32