清除执行完成后Jupiter单元格中定义的所有变量

465*_*65b 5 python jupyter

我需要在jupyter中导入和操作内存繁重的数据.因为我倾向于拥有相当长的笔记本,所以几个数据集将成为导入器,我需要手动连续清除它们.这很潮湿.

如果可能的话,我希望有一个工具可以清除单元格中引入的所有变量,只有那些无需在满足目的后手动解决它们的工具.

我当然可以覆盖变量,但是因为它们都用于相当不同的目的,这将大大降低代码的可读性.

总结一下:

  • 单元格1:

    变量开销#this将在整个笔记本中使用

  • 单元格2:

    导入或生成数据并操纵数据

    清除单元格中引入的所有变量,而无需手动解决每一个变量< - 这就是我要寻找的.

非常感谢你!

小智 4

您可以通过在代码中添加以下魔法命令来重置 Jupyter Notebook 中的变量:

%reset_selective -f [var1, var2, var3]
Run Code Online (Sandbox Code Playgroud)

如果您在代码中添加这样的行,它应该保持可读性。

完全回答你的问题 - 目前我认为不存在一个命令可以自动查找在特定单元格中创建的所有变量并仅重置它们。(如果我错了,请有人纠正我。)

但是您可以使用以下代码来准确删除单元格中新创建的那些命名空间对象。这可能就是你想要的:

from IPython import get_ipython

my_variables = set(dir())  # Write this line at the beginning of cell

# Here is the content of the cell

my_variables = list(set(dir()) - my_variables)  # Write these 2 lines at the end of cell
get_ipython().magic('%reset_selective -f [{}]'.format(','.join(my_variables)))
Run Code Online (Sandbox Code Playgroud)