保存程序的状态以允许它恢复

Dea*_*nes 9 python state

我偶尔会有需要很长时间才能运行的Python程序,而且我希望能够保存状态并在以后恢复.有没有人有一个聪明的方法来保存状态每x秒,或程序退出?

And*_*ite 8

将所有"状态"数据放在一个地方并使用泡菜.

pickle模块实现了一个基本但强大的算法,用于序列化和反序列化Python对象结构."Pickling"是将Python对象层次结构转换为字节流的过程,"unpickling"是反向操作,从而将字节流转换回对象层次结构.酸洗(与在unpickle)可替代地被称为"序列","编组" 1或"压扁",然而,为了避免混淆,此处使用的术语"酸洗"和"取储存".


Gar*_*erg 5

如果您想保存所有内容,包括整个命名空间和当前正在执行的代码行以便随时重新启动,则没有标准库模块可以做到这一点。

正如另一位海报所说,pickle 模块可以将几乎所有内容保存到一个文件中,然后再次加载它,但是您必须围绕 pickle 模块专门设计您的程序(即保存您的“状态”——包括变量等——在课堂上)。