栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

如果您无法控制这些腌制文件的创建方式,并且 必须 在Python 2.7中加载它们,那么很 遗憾,没有简单的解决方法。

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

从文档中:

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

如果它们是一组固定的文件,那么一种解决方法可能是编写一个脚本,该脚本以迭代方式在Python
3.0中加载协议3腌制的文件,然后将其

protocol=2
用作一次性修复程序重新编写。然后,您将能够在Python
2.7中阅读它们。如果要创建一些将来的文件需要处理的文件,还请确保修改写入这些文件的原始代码。

@Kay指出此解决方案在实践中有多简单:我已经在python3中使用协议3腌制了文件,现在我需要使用python2对其进行修复,该怎么办?

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414531.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号