【问题标题】:Clear all except for a few specific variables in IPython清除 IPython 中除少数特定变量外的所有变量
【发布时间】:2015-05-13 15:23:03
【问题描述】:

我知道IPython 中的%reset%reset_selective 命令。但是,假设您有很多变量,并且您想要清除除xyz 之外的所有变量。有没有一种简洁的方法来实现这一点? 说%reset_all_except x,y,z

【问题讨论】:

标签: python ipython ipython-magic


【解决方案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]

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

【讨论】:

  • 很酷的东西!也许对你们来说很明显,但也应该添加save_list.append('save_list') 以避免错误。 :)
  • 既然您提到了它,我没有在答案中包含它似乎真的很愚蠢。好收获!
【解决方案2】:

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

【讨论】:

猜你喜欢
  • 2014-05-20
  • 2019-02-11
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 2012-11-12
相关资源
最近更新 更多