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

我已经在python3中使用协议3对文件进行了腌制,现在我需要使用python2对其进行腌制,该怎么办?

我已经在python3中使用协议3对文件进行了腌制,现在我需要使用python2对其进行腌制,该怎么办?

如果您无法控制这些腌制文件的创建方式,并且 必须 在Python 2.7中加载它们,那么很

也许创建文件的人没有意识到Python 3中pickle的认协议是“ 3”,但这是向后不兼容的。

文档中

当前认协议是3;认协议是3。为Python 3.0设计的向后不兼容的协议。

如果它们是一组固定的文件,那么一种解决方法可能是编写一个脚本,该脚本以迭代方式在Python 3.0中加载协议3腌制的文件,然后将其protocol=2用作一次性修复程序重新编写。然后,您将能够在Python 2.7中阅读它们。如果要创建一些将来的文件需要处理的文件,还请确保修改写入这些文件的原始代码

像pickle.dump(pickle.load(sys.stdin),sys.stdout,2)一样简单

python 2022/1/1 18:32:11 有536人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶