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

打开.pkl文件出现UnicodeDecodeError的原因排查求助

这问题我碰到过好多次啦,核心原因其实很简单——你用错了文件打开模式!

问题根源分析
  • pickle文件是二进制格式,不是普通的文本文件,所以不能用文本模式('r')打开。当你用'r'模式时,Python会自动尝试用系统默认编码(这里是charmap)去解码二进制内容,而pickle的字节流根本不是文本编码,自然会触发解码错误。
  • 你后来指定encoding="utf-8"还是报错,因为本质还是文本模式,utf-8同样无法解析pickle的二进制头部(0x80是pickle格式的标志性字节),所以依然会失败。
解决方案

把打开模式改成二进制只读模式'rb',不需要指定encoding参数,直接让pickle去处理二进制数据就行。修正后的代码如下:

import pickle
with open(r"C:\Users\ADMIN\Desktop\Abhishek\STATS Data\test_data_1.pkl ", 'rb') as f:
    data = pickle.load(f)
print(data)
额外注意事项

如果运行后还是报错,可能是这个pickle文件是用不同版本的Python保存的(比如Python2和Python3之间的pickle格式差异),这时候可以尝试在pickle.load()里加上encoding='latin1'参数(针对Python2保存的文件):

data = pickle.load(f, encoding='latin1')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:26:47