使用pandas.read_csv读取文件报utf-8解码0xca错误如何解决
错误根因
你遇到的UnicodeDecodeError: 'utf-8' codec can't decode byte 0xca报错,本质是pandas读取CMSB_V9.txt时默认使用UTF-8编码解码,但该文件实际编码并非UTF-8,导致解码失败。
解决方案
下面是可落地的操作方案,按优先级选择即可:
- 方案1:不修改原文件,调整读取代码编码参数
找到PM.py第1108行的pd.read_csv调用,添加encoding参数,优先试以下几个常见编码:- 无特殊中文字符可直接用latin1(兼容所有单字节字符,不会报解码错):
pd.read_csv(filename, sep=sep, index_col=False, encoding='latin1') - 如果文件包含中文,替换为
encoding='gbk';如果是西欧语言的文件,替换为encoding='cp1252'
你也可以直接用日常查看文件的Sublime Text打开CMSB_V9.txt,窗口右下角会直接显示该文件的实际编码,直接把对应编码名填到参数里即可。
- 无特殊中文字符可直接用latin1(兼容所有单字节字符,不会报解码错):
- 方案2:转码文件为UTF-8,不修改项目代码
用Sublime Text打开CMSB_V9.txt后,点击顶部菜单「文件 - 以编码保存 - UTF-8」,保存后的文件直接就能用默认配置读取,不需要改任何项目代码,适合不想改动依赖脚本的场景。
内容的提问来源于stack exchange,提问作者Kseniap
相关产品推荐
相关产品推荐

