Bad Pickle得到错误

时间:2009-03-29 06:08:20

标签: python pickle

我一直在使用名为Mnemosyne的闪存卡程序,该程序使用python脚本。不久之前,我的计算机冻结后我的闪存卡数据库无法访问,我不得不手动关闭它。每当我尝试加载包含我的卡的数据库时,我都会收到此错误。

Invalid file format 
Traceback(innermost last): 
File "mnemosyne\core\mnemosyne_core.pyc", line 1012, in load_database 
BadPickleGet: 577"

非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

(虽然CLayton的副本可能是二元发行版,但mnemosyne的来源是免费提供的。)

虽然没有多大帮助:第1012行只是:

db = cPickle.load(infile)

其中'infile'是存储的数据库文件。所以你的数据库文件中有一些损坏的东西。 (BadPickleGet是UnpicklingError的特定子类,这是输入中断时的预期。)

您可以更改mnemosyne_core.py以使用普通的Python pickle模块而不是cPickle,允许您向pickle.py添加调试并确切地计算出它不喜欢的文件中的内容。但说实话,如果文件由于硬件故障/硬断电而损坏,则内容可能被截断,不可读或只是完全垃圾。

准备重新审视那些早期的卡片......