如何备份和恢复python当前的工作环境?

2024-10-01 15:45:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个函数'backup(filename)'来存储所有的工作数据(对象?)在当前Python环境下,和'restore(filename)'再次恢复数据/对象。就像R的save.image(file="workspace21.RData")load(file="workspace21.RData"),它们可以对系统进行快照。在

如何编写“备份”和“恢复”?或者有没有现成的软件包可以做到这一点?在


Tags: 数据对象函数image环境saveloadrestore
3条回答

你应该看看pickle documentation。你还有an example可以帮助你做你想做的事情。在

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"))) 

这不起作用,因为模块对象不可拾取。打开的文件描述符和其他对象也会出现问题。有关(部分)解决方案,请参阅此问题的答案:

How can I save all the variables in the current python session?

因此,虽然您不能有一个通用的解决方案来解决您的问题,但是您可以编写一些东西来保存一些(全局)对象,如果有帮助的话,可以使用上面的代码片段作为起点。在

有点开箱即用,但如果这很重要并且您确实需要一个完整的解决方案,您可以在虚拟机中运行python并使用快照来保存会话状态。它是否实用取决于您的用例。在

相关问题 更多 >

    热门问题