用于pickle整个环境的python脚本
我在Python REPL中工作,我希望定期保存我的工作。有人有脚本转储我定义的所有变量吗?我在找这样的东西:用于pickle整个环境的python脚本,python,pickle,Python,Pickle,我在Python REPL中工作,我希望定期保存我的工作。有人有脚本转储我定义的所有变量吗?我在找这样的东西: for o in dir(): f=open(o) pickle(o_as_object, f) 这似乎是其他人做过的事情,所以我想在重新发明轮子之前问一下 我想你想要: 除了pickle python对象之外,dill还提供了 在单个命令中保存解释器会话的状态。因此,, 可以保存一个口译员会话,关闭 解释器,将酸洗过的文件发送到另一台计算机,打开一个新的 解释器,取
for o in dir():
f=open(o)
pickle(o_as_object, f)
这似乎是其他人做过的事情,所以我想在重新发明轮子之前问一下 我想你想要:
除了pickle python对象之外,dill还提供了
在单个命令中保存解释器会话的状态。因此,,
可以保存一个口译员会话,关闭
解释器,将酸洗过的文件发送到另一台计算机,打开一个新的
解释器,取消勾选会话,然后从“已保存”继续
原始口译员会话的状态
注意,它仍然是alpha格式,所以不要依赖它来存储关键数据
当然,有些东西无法还原,例如打开的文件句柄。但是你可以靠得很近。我不认为这在一般情况下是可能的。并非python中的所有内容都可以pickle,因此您必须编写自己的代码来决定要pickle什么、不需要什么以及如何处理无法pickle的意外值;但是,如果您想要文件内容,则将内容传递给StringIO,StringIO也可以序列化。整洁!它是否恢复了您在文件中的位置并重新打开了文件?是的。它复制文件指针,以便您在文件中处于相同的位置,同时假设文件没有发生任何奇怪的事情。它还处理关闭的文件句柄、stdin/stdout/stderr和临时文件。。。如果失败,尝试构建devnull的文件句柄。。。如果做不到这一点,这将是一个令人不快的错误。不确定这是否是最好的失败行为,但这就是现在的情况……很显然,由于3.2酸洗某些文件句柄现在更严格地被禁止。get_state方法已设置为对
io
模块中的许多派生文件对象抛出错误。因此,现在回到3.2中的io
部分的绘图板。在这里插入悲伤的表情。。。以及2.6.x和2.7.x的最新版本。显然,一个人的“错误修正”是另一个人的“错误”。