cPickle.UnpicklingError: 无效的加载键

5 投票
1 回答
10024 浏览
提问于 2025-04-16 03:20

我的程序在Windows上运行得很好,我使用了cpickle,并且是以二进制模式打开文件,比如'wb'(写入二进制)或'rb'(读取二进制)。当我在Linux上运行我的程序时,它也能正常工作。

但是,当我尝试在Windows平台上解压从Linux平台得到的文件时,出现了一个奇怪的错误信息:cPickle.UnpicklingError: invalid load key' '。

有没有人能告诉我这是为什么呢?

看起来我无法从Linux平台解压任何文件。

顺便说一下,我在两个平台上运行的程序是完全一样的。

非常感谢大家。

1 个回答

4

看这段代码(http://svn.python.org/view/python/trunk/Modules/cPickle.c?revision=81029&view=markup),似乎是解析错误(加载的关键字是pickle格式的关键字)。听起来这个文件可能被修改过了。

你是怎么把文件从Linux转移到Windows的?如果是用FTP传输的,是否选择了二进制模式?

(你是用HIGHEST_PROTOCOL,对吧?)

撰写回答