您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python pickle:加载前修复\ r字符

Python pickle:加载前修复\ r字符

假设文件是??使用认协议= 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上阅读此恢复过程,此恢复过程都是必需的。

python 2022/1/1 18:43:20 有279人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶