Python pickle: исправьте \r символы перед загрузкой

Я получил маринованный объект (список с несколькими массивами numpy в нем), который был создан в Windows и, очевидно, сохранен в файл, загруженный как текст, а не в двоичном режиме (т.е. с open(filename, 'w') вместо open(filename, 'wb')). В результате теперь я не могу распаковать его (даже под Windows), потому что он заражен \r символами (и, возможно, еще чем-то)? Основная претензия -

ImportError: No module named multiarray

якобы потому, что он ищет numpy.core.multiarray\r, которого, конечно же, не существует. Простое удаление символов \r не помогло (пробовал и sed -e 's/\r//g' и, в python s = file.read(). replace('\r', ''), но оба варианта ломают файл и выдают cPickle.UnpicklingError позже)

Проблема в том, что мне действительно нужно получить данные из объектов. Есть идеи, как исправить файлы?

Edit: По запросу, первые несколько сотен байт моего файла, Octal:

\x80\x02]q\x01(}q\x02(U\r\ntotal_timeq\x03G?\x90\x15r\xc9(s\x00U\rreaction_timeq\x04NU\x0ejump_directionq\x05cnumpy.core.multiarray\r\nscalar\r\nq\x06cnumpy\r\ndtype\r\nq\x07U\x02f8K\x00K\x01\x87Rq\x08(K\x03U\x01

Вы также можете скачать весь файл (22k).

8
задан Manuel Ebert 16 December 2011 в 06:56
поделиться