我想编写一个函数'backup(filename)'
来存储当前 Python 环境下的所有工作数据(对象?),并'restore(filename)'
再次恢复数据/对象。就像 R 的save.image(file="workspace21.RData")
and 一样load(file="workspace21.RData")
,可以对系统进行快照。
如何编写“备份”和“恢复”?或者是否有任何软件包可以做到这一点?
有点开箱即用,但如果这很重要并且您确实需要完整的解决方案,您可以在虚拟机中运行 python 并使用快照来保存会话状态。是否实用取决于您的用例。
pickle 模块似乎是一个解决方案,但它并不能真正为您保存整个环境。试试这个:
import pickle
def backup(fileName):
pickle.dump(globals(), open(fileName,'w'), pickle.HIGHEST_PROTOCOL)
def restore(fileName):
globals().update(pickle.load(open(fileName,"rb")))
这将不起作用,因为模块对象不可提取。您还将遇到打开文件描述符和其他对象的问题。有关(部分)解决方案,请参阅此问题的答案:
因此,虽然您无法为您的问题找到一个通用的解决方案,但如果有帮助,您可以使用上面的代码片段作为起点,编写一些可以保存您的一些(全局)对象的东西。