7

我知道. %reset_ 但是,假设您有很多变量,并且您想清除除, ,之外的所有变量。有没有一种简洁的方法来实现这一点?说一个?%reset_selectiveIPythonxyz%reset_all_except x,y,z

4

2 回答 2

1

这是基于大量类似问题的集体答案:

捕获系统中的默认变量(应该是您的第一行代码):

save_list = dir()

在使用“清除变量”命令之前将要保存的其他变量添加到列表中:

save_list.append(*your_variable_to_be_saved*)

最后,清除所有变量(除了默认和保存):

for name in dir():
    if name not in save_list:
        del globals()[name]

for name in dir():
    if name not in save_list:
        del locals()[name]

这将清除除默认变量和您选择保存的变量之外的所有变量。每当我在不保存默认变量的情况下这样做时,它也会清除这些变量,我必须重新启动内核才能将它们取回。

于 2020-01-07T09:53:15.870 回答
1

%reset_selective接受正则表达式。
如果你有变量命名为:glob_x, glob_y, glob_z你不想重置,你可以使用:%reset_selective -f ^(?!glob_).*$

于 2021-09-07T05:08:29.257 回答