187

Sometimes I rerun a script within the same ipython session and I get bad surprises when variables haven't been cleared. How do I clear all variables? And is it possible to force this somehow every time I invoke the magic command %run?

starball
  • 20,030
  • 7
  • 43
  • 238
grasshopper
  • 3,988
  • 3
  • 23
  • 29

8 Answers8

262

%reset seems to clear defined variables.

aisbaa
  • 9,867
  • 6
  • 33
  • 48
70

EDITED after @ErdemKAYA comment.

To erase a variable, use the magic command:

%reset_selective <regular_expression>

The variables that are erased from the namespace are the one matching the given <regular_expression>.

Therefore

%reset_selective -f a 

will erase all the variables containing an a.

Instead, to erase only a and not aa:

In: a, aa = 1, 2
In: %reset_selective -f "^a$"
In: a  # raise NameError
In: aa  # returns 2

see as well %reset_selective? for more examples and https://regexone.com/ for a regex tutorial.

To erase all the variables in the namespace see:

%reset?
SeF
  • 3,864
  • 2
  • 28
  • 41
67

In iPython you can remove a single variable like this:

del x
Joop
  • 3,706
  • 34
  • 55
23

I tried

%reset -f

and cleared all the variables and contents without prompt. -f does the force action on the given command without prompting for yes/no.

Wish this helps.. :)

zx485
  • 28,498
  • 28
  • 50
  • 59
Babu K.M.
  • 331
  • 2
  • 5
15

Adding the following lines to a new script will clear all variables each time you rerun the script:

from IPython import get_ipython
get_ipython().magic('reset -sf') 

To make life easy, you can add them to your default template.

In Spyder: Tools>Preferences>Editor>Edit template

Carl
  • 151
  • 1
  • 3
14

Apart from the methods mentioned earlier. You can also use the command del to remove multiple variables

del variable1,variable2
Devarshi Mandal
  • 703
  • 8
  • 16
5

The get_ipython().magic() method raises a DeprecationWarning in ipython 8.1. Here is the new version of Carl's answer

 from IPython import get_ipython
 get_ipython().run_line_magic('reset', '-sf')

Add these lines to a file you are editing. Then at the ipython command prompt you can type,

%run file_you_are_editing.py
chubb
  • 51
  • 1
  • 2
  • This answer works for people using for loops, multi files and doesn't want to get their modules erased with the `%reset` command – guardian Jan 09 '23 at 14:45
0

An quit option in the Console Panel will also clear all variables in variable explorer

*** Note that you will be loosing all the code which you have run in Console Panel

Sirish
  • 1
  • 5