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() в качестве теста. Если вы не получили ту же ошибку, вы знаете, что это связано с записью файла.

Другие вопросы по тегам