2011-04-06 35 views

回答

6

将所有“州”数据放在一个地方,并使用pickle

pickle模块为Python对象结构的序列化和反序列化实现了一个基本但强大的算法。 “Pickling”是将Python对象层次结构转换为字节流的过程,“unpickling”是相反的操作,即字节流转换回对象层次结构。酸洗(和取消)也称为“序列化”,“编组”,或者“扁平”,但是,为了避免混淆,这里使用的术语是“酸洗”和“不沾”。

+0

我还没有机会尝试它,但这听起来像我所需要的。谢谢 – 2011-04-07 12:24:04

+1

我怎样才能找到我所有的“状态”数据?我认为这不是对这个问题的直接回答。 – sergzach 2016-01-12 19:09:56

3

如果要保存所有内容,包括当前正在执行的整个名称空间和代码行以便随时重新启动,则没有标准库模块可以执行此操作。

正如另一张海报所说,泡菜模块可以将几乎所有东西都保存到一个文件中,然后重新加载,但是您必须在泡菜模块周围专门设计程序(即保存“状态” - 包括变量等 - 在一个班级)。

0

如果您确定使用OOP,请考虑为每个输出序列化版本(使用pickle)的类创建一个方法来存档。然后添加第二种方法来加载数据的实例,如果pickle文件在那里,则调用load方法而不是处理方法。 我对ML使用这种方法,它真的让我的工作流程成型。