Pickle:读取字典时的EOFError
我最近发现了一个叫做pickle的东西,真是太棒了。不过在我实际使用它的时候出现了错误。用一个只有一个项目的字典测试的时候没问题,但我的真实脚本有几千行代码,要把各种对象存储到maya里。我不知道这是否和代码的大小有关,我在这里看了很多帖子,但没有一个能具体解决我的错误。
我尝试过用所有的优先级来写代码,但都没有成功。
这是我的输出代码:
output = open('locatorsDump.pkl', 'wb')
pickle.dump(l.locators, output, -1)
output.close()
这是我的读取代码:
jntdump = open('locatorsDump.pkl', 'rb')
test = pickle.load(jntdump)
jntdump.close()
这是错误信息:
# Error: Error in maya.utils._guiExceptHook:
# File "C:\Program Files\Autodesk\Maya2011\Python\lib\site-packages\pymel-1.0.0-py2.6.egg\maya\utils.py", line 277, in formatGuiException
# exceptionMsg = excLines[-1].split(':',1)[1].strip()
# IndexError: list index out of range
#
# Original exception was:
# Traceback (most recent call last):
# File "<maya console>", line 3, in <module>
# File "C:\Program Files\Autodesk\Maya2011\bin\python26.zip\pickle.py", line 1370, in load
# return Unpickler(file).load()
# File "C:\Program Files\Autodesk\Maya2011\bin\python26.zip\pickle.py", line 858, in load
# dispatch[key](self)
# File "C:\Program Files\Autodesk\Maya2011\bin\python26.zip\pickle.py", line 880, in load_eof
# raise EOFError
# EOFError #
1 个回答
4
试着用 pickle.dumps() 和 pickle.loads() 来做个测试。如果你没有收到同样的错误,那就说明问题和文件写入有关。