How do I clear all variables in the middle of a Python script?
The following sequence of commands does remove every name from the current module:
>>> import sys
>>> sys.modules[__name__].__dict__.clear()
I doubt you actually DO want to do this, because "every name" includes all built-ins, so there's not much you can do after such a total wipe-out. Remember, in Python there is really no such thing as a "variable" -- there are objects, of many kinds (including modules, functions, class, numbers, strings, ...), and there are names, bound to objects; what the sequence does is remove every name from a module (the corresponding objects go away if and only if every reference to them has just been removed).
Maybe you want to be more selective, but it's hard to guess exactly what you mean unless you want to be more specific. But, just to give an example:
>>> import sys
>>> this = sys.modules[__name__]
>>> for n in dir():
... if n[0]!='_': delattr(this, n)
...
>>>
This sequence leaves alone names that are private or magical, including the __builtins__
special name which houses all built-in names. So, built-ins still work -- for example:
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'n']
>>>
As you see, name n
(the control variable in that for
) also happens to stick around (as it's re-bound in the for
clause every time through), so it might be better to name that control variable _
, for example, to clearly show "it's special" (plus, in the interactive interpreter, name _
is re-bound anyway after every complete expression entered at the prompt, to the value of that expression, so it won't stick around for long;-).
Anyway, once you have determined exactly what it is you want to do, it's not hard to define a function for the purpose and put it in your start-up file (if you want it only in interactive sessions) or site-customize file (if you want it in every script).
Removing all variables before each run of a python program
Due to the conditions of your scripts, you can delete or assign your variables to zero or default amount before the main block executed:
variable1 = 0
or bash operator:
list_of_variable = [a, b, c]
for i in list_of_variable:
i = 0
Related Topics
Python: How to Find the First Day of Every Month Between Two Date Ranges
How to Extract Column Value Within Square Brackets in Pyspark
How to Get Slope from Timeseries Data in Pandas
Matplotlib: Drawing Lines Between Points Ignoring Missing Data
Regex to Find Words Between Two Tags
How to Remove Zeros After Decimal from String Remove All Zero After Dot
Csv File Written With Python Has Blank Lines Between Each Row
How to Merge Columns from Multiple CSV Files Using Python
Pytest Cannot Import Module While Python Can
Keep Other Columns When Doing Groupby
Pyspark Add New Row to Dataframe
What Is the Simplest Way to Ssh Using Python
How to Get the Column Name in Pandas Based on Row Values
Python: Opencv - Selecting Region of an Image
How to Drop Rows from Pandas Data Frame That Contains a Particular String in a Particular Column