是否可以将整个解释器的状态保存到文件中?

问题描述 投票:1回答:1

我想用一个解释器工作,然后当希望停止时,把它的整个状态保存到文件中。我不想介意保存什么。例如,我不想列出变量,我想让它自动保存所有内容。我想让它自动保存所有的东西。

明天我希望重新打开保存的状态,继续在同一个地方操作。

像Jupyter这样的各种笔记本都不适用,因为它们只能重新执行我的命令来恢复状态,这可能需要时间,我希望避免这种情况。

如果有其他成熟的解释语言有这个功能,就感激不尽了。

python python-3.x state interpreter
1个回答
1
投票

你可以使用 莳萝 保存和加载python解释器会话,使用 dill.dump_sessiondill.load_session.

来自 文件:

dill 提供了用一条命令保存解释器会话状态的能力。因此,可以保存一个解释器会话,关闭解释器,将pickle文件传送到另一台计算机,打开一个新的解释器,取消pickle会话,从而从原始解释器会话的 "保存 "状态继续。

使用示例 dump_session

❯ python
>>> def func(a): 
...     print(a)                                                                                                                                                                                                

>>> class MyClass: 
...     pass                                                                                                                                                                                                    

>>> x,y,z = 1, "hello", [1,2,3]                                                                                                                                                                                 

>>> import dill                                                                                                                                                                                                 

>>> dill.dump_session

加载会话。

❯ python
>>> import dill                                                                                                                                                                                                 

>>> dill.load_session()                                                                                                                                                                                         

>>> x,y,z,func,MyClass                                                                                                                                                                                 
(1, 'hello', [1, 2, 3], <function func at 0x10d853d40>, <class '__main__.MyClass'>)

dill 还不能腌制一些标准类型,所以你要自己尝试一下,看看是否适合你。

© www.soinside.com 2019 - 2024. All rights reserved.