Spyder - 清除变量资源管理器以及从内存中清除变量

16

我们可以使用以下命令来清除控制台 -

import subprocess as sp
tmp = sp.call('cls',shell=True)

然而,要从内存中删除一个变量,我们通常依赖于 -

  • 使用 del 命令
  • 通过在变量资源管理器中使用下拉菜单手动删除变量

但它们都是特定于变量的,因此耗时。那么是否有通用命令(例如MATLAB下的clear)可以从内存中删除一个变量,并从Spyder的变量资源管理器中删除。


2
如果您想重新启动ipython控制台,可以使用%reset,它将清除所有变量,但也许您只想删除一个变量? - Nathan
1
嗯,我正在寻找一种方法在Spyder Python脚本中一次性删除所有变量。 - sync11
1
可能是如何在IPython中清除变量?的重复。 - Jose Dzireh Chong
1
@JoseDzirehChong 给出的页面没有列出普通py脚本的解决方案,而是提供了IPython脚本的方法。@Nathan,我们不能直接发出%reset命令。那么,为了使它对python脚本可用,需要采取哪些步骤? - sync11
@Vivek,你可以通过在Spyder中转到菜单“运行>每个文件的配置>常规设置”,然后选择名为“执行前清除所有变量”的选项来自动清除你的命名空间。 - Carlos Cordoba
5个回答

27

打开Spyder IDE中的IPython控制台,输入%reset命令。它会提示您输入(y/n),因为一旦删除变量就无法恢复。输入“y”并按回车键即可完成操作。


21
在Spyder中,按照以下步骤操作:
运行
针对每个文件的配置...
执行前清除所有变量 [选中复选框]

这实际上会清除先前运行文件时存在的变量。希望能有所帮助。

输入图像描述


在最近的Spyder版本中,该选项直接位于配置对话框中的“运行”下方。 - mins

3
Karan Kaw所提供的答案中解释的那样,无论你在哪个脚本上工作,都有一个设置可以删除所有变量。
请按照以下步骤(从下拉菜单栏)进行操作: > 工具 > 首选项 > 运行
并在“常规设置”部分中选中“执行前删除所有变量”复选框。我使用的是Spyder 3.3.4。
如果您希望在执行所有脚本之前预防性地删除所有变量,则可采用此方法。希望对您有所帮助。

3
在浏览网页时,我发现了一个技巧,可以解决每次想要重新执行脚本时都需要清除变量资源管理器的烦人问题。
def clear_all():
    """Clears all the variables from the workspace of the spyder application."""
    gl = globals().copy()
    for var in gl:
        if var[0] == '_': continue
        if 'func' in str(globals()[var]): continue
        if 'module' in str(globals()[var]): continue

        del globals()[var]
if __name__ == "__main__":
    clear_all()
    # insert here your code

基本上,它包括在其他所有操作之前执行函数clear_all()。这意味着你需要自己编写与Matlab相同的函数。

这里是提出解决方案的git问题链接。


2

对于Spyder v. > 4.0版本,可以通过单击变量浏览器中的"删除所有变量"图标来删除变量:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接