Pickle: чтение словаря, EOFError
Я недавно узнал о маринаде, что удивительно. Но при работе с моим настоящим сценарием возникают ошибки, при тестировании с использованием словаря из одного элемента все работало нормально. Мой настоящий сценарий - это тысячи строк кода, в которых хранятся различные объекты внутри 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 ответ
Попробуйте использовать pickle.dumps() и pickle.loads() в качестве теста. Если вы не получили ту же ошибку, вы знаете, что это связано с записью файла.