假设文件是??使用默认协议= 0兼容ASCII的方法创建的,则应该能够使用open('pickled_file', 'rU')
通用换行符将其加载到任何地方。
如果这不起作用,请向我们显示前几百个字节:print repr(open('pickled_file', 'rb').read(200))
并将结果粘贴到您的问题的编辑中。
:
您的文件开头为'\x80\x02'
; 它随协议2(最新/最佳)一起丢弃。协议1和2是 协议。您的文件是在Windows上以 模式编写的。这导致C运行时'\n'
将每个转换为'\r\n'
C。应该以二进制模式打开文件,如下所示:
with open('result.pickle', 'wb') as f: # b for binary
pickle.dump(obj, f, pickle.HIGHEST_PROTOCOL)
with open('result.pickle', 'rb') as f: # b for binary
obj = pickle.load(f)
文件在这里。此代码可在Windows和非Windows系统上移植。
您可以通过读取二进制模式的文件,然后通过更换所有出现逆转的损伤恢复原始图像咸菜'\r\n'
通过'\n'
。注意:无论您是否尝试在Windows上阅读此恢复过程,此恢复过程都是必需的。