首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python中酸菜的常见用例

Python中酸菜的常见用例
EN

Stack Overflow用户
提问于 2010-08-09 17:15:47
回答 7查看 23K关注 0票数 139

我看过pickle文档,但我不明白pickle在哪里有用。

泡菜的一些常见用例是什么?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-08-09 20:21:54

我遇到的一些用法:

1)将程序的状态数据保存到磁盘上,以便在重启时可以在中断的地方继续(持久化)

2)在多核或分布式系统中通过TCP连接发送python数据(编组)

3)在数据库中存储python对象

4)将任意python对象转换为字符串,以便可以将其用作字典键(例如,用于缓存和记忆)。

最后一种方法有一些问题--两个相同的对象可能会产生不同的字符串--甚至两次相同的对象可能会有不同的表示。这是因为pickle可以包括引用计数信息。

强调@lunaryorn的评论-你永远不应该解开来自不可信来源的字符串,因为精心制作的pickle可能会在你的系统上执行任意代码。例如,请参阅https://blog.nelhage.com/2011/03/exploiting-pickle/

票数 66
EN

Stack Overflow用户

发布于 2010-08-09 17:34:04

我在我的一个项目中使用了它。如果应用程序在运行过程中被终止(它做了一个冗长的任务并处理了大量数据),我需要保存整个数据结构,并在应用程序再次运行后重新加载它。为此,我使用了cPickle,因为速度是至关重要的,而且数据量非常大。

票数 8
EN

Stack Overflow用户

发布于 2013-10-14 20:31:16

酸洗对于分布式和并行计算来说是绝对必要的。

假设您想使用multiprocessing (或使用pyina跨集群节点)执行并行map-reduce,那么您需要确保您希望跨并行资源映射的函数将被pickle。如果它不泡菜,你就不能把它发送给另一个进程、计算机等上的其他资源。另请参阅here以获得一个很好的例子。

为此,我使用了dill,它可以序列化python中的几乎任何内容。Dill还提供了some good tools,可以帮助您理解在代码失败时是什么原因导致酸洗失败。

是的,人们使用picking来保存计算的状态,或者你的ipython会话,或者其他任何东西。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3438675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档