0
如何删除在特定单元格号后定义/创建的jupyter中的所有变量?jupyter删除单元格后的所有变量
我的具体用例是我将加载一些变量在前几个单元格,我想保留这些变量,而我将在笔记本上进行实验。
我不想继续重新启动或重置笔记本,因为它需要时间加载这些变量。相反,我想从某个单元“重新启动”。
如何删除在特定单元格号后定义/创建的jupyter中的所有变量?jupyter删除单元格后的所有变量
我的具体用例是我将加载一些变量在前几个单元格,我想保留这些变量,而我将在笔记本上进行实验。
我不想继续重新启动或重置笔记本,因为它需要时间加载这些变量。相反,我想从某个单元“重新启动”。
如果你能负担得起的存储和使用类似copy.copy()
或copy.deepcopy()
复制变量,商店“备份”的变量并创建了您重新分配原始值从备份您的变量的单元格。
您将运行此单元以恢复您的值。
见下文
编辑详细信息说明:
from copy import deepcopy
bckp_a = deepcopy(var_a)
bckp_b = deepcopy(var_b)
dir_bckp = deepcopy(dir()) # store defined variables defined at this point
var_a = some_func(var_a)
var_b = some_other_func(var_a)
var_c = some_value
var_a = deepcopy(bckp_a)
var_b = deepcopy(bckp_b)
for var in dir():
if var == 'dir_bckp': # Note that it is a string
continue # Preserve dir_bckp, very important.
elif var not in dir_bckp:
del globals()[var] # Delete newly defined variables
>>> var_c
NameError: name 'var_c' is not defined
恢复原始值
编辑:
如果你绝对需要删除创建的变量,你可以尝试用dir()
和globals()
一招。但这可能不是好的做法,所以要谨慎。
查看上面的更改。
请注意,也有creating a restore point使用Pickle
的选项,但是如果某些变量需要时间加载,我不确定性能。
所以对于备份变量,我有兴趣知道如何可以帮助删除其他变量 – user113531
一旦变量值恢复,重新运行和垃圾收集器将完成他的工作。如果你真的想删除这些变量,你可以备份'dir()'并将其恢复。但这是一个窍门,我怀疑这是好的做法。我会在编辑中解释。 – FabienP
@ user113531:你在找什么? – FabienP