title: Python: Delete multiple variables if they exist
body: <p>First, I import between one and 25 files named <code>file_1</code>, ..., <code>file_25</code>; if I import seven, it can be <code>file_1</code> till <code>file_7</code>, but also any of the other files.</p>
  
  <p>Next, I merge them to one. I do this by </p>
  
  <pre><code>files = ["file_1","file_2","file_3","file_4","file_5","file_6","file_7","file_8","file_9","file_10","file_11","file_12","file_13","file_14","file_15","file_16","file_17","file_18","file_19","file_20","file_21","file_22","file_23","file_24","file_25"]
  all_files = pd.DataFrame()
  for file in files:
      if file in globals():
          print("Merging", file)
          all_files = all_files.append(eval(file))
      else:
          print(file, "not in globals")
  </code></pre>
  
  <p>(Note for future readers: the list <code>files</code> can easily created by Excel; no need to type it all)</p>
  
  <p>To avoid memory errors, I then want to delete all existing files. I was thinking about something like</p>
  
  <pre><code>a = 1
  b = 2
  c = 3
  
  l = [a,b,c]
  
  for l in l:
      del l
  </code></pre>
  
  <p>but it doesn't work (I know that there is no condition for checking the existence in yet, but it also does not work if all files in the list exist.
  How can this be solved?</p>
  
  <hr>
  
  <p>Edit:
  Full example:</p>
  
  <pre><code>file_1 = pd.read_csv("path/file_1")
  file_2 = pd.read_csv("path/file_2")
  file_3 = pd.read_csv("path/file_3")
  file_4 = pd.read_csv("path/file_4")
  file_5 = pd.read_csv("path/file_5")
  file_6 = pd.read_csv("path/file_6")
  file_7 = pd.read_csv("path/file_7")
  file_8 = pd.read_csv("path/file_8")
  file_9 = pd.read_csv("path/file_9")
  file_10 = pd.read_csv("path/file_10")
  file_11 = pd.read_csv("path/file_11")
  file_12 = pd.read_csv("path/file_12")
  file_13 = pd.read_csv("path/file_13")
  file_14 = pd.read_csv("path/file_14")
  file_15 = pd.read_csv("path/file_15")
  file_16 = pd.read_csv("path/file_16")
  file_17 = pd.read_csv("path/file_17")
  file_18 = pd.read_csv("path/file_18")
  file_19 = pd.read_csv("path/file_19")
  file_20 = pd.read_csv("path/file_20")
  file_21 = pd.read_csv("path/file_21")
  file_22 = pd.read_csv("path/file_22")
  file_23 = pd.read_csv("path/file_23")
  file_24 = pd.read_csv("path/file_24")
  file_25 = pd.read_csv("path/file_25")
  
  files = ["file_1","file_2","file_3","file_4","file_5","file_6","file_7","file_8","file_9","file_10","file_11","file_12","file_13","file_14","file_15","file_16","file_17","file_18","file_19","file_20","file_21","file_22","file_23","file_24","file_25"]
  all_files = pd.DataFrame()
  for file in files:
      if file in globals():
          print("Merging", file)
          all_files = all_files.append(eval(file))
      else:
          print(file, "not in globals")
  
  # How to simplfy the following?
  del file_1
  del file_2
  del file_3
  del file_4
  del file_5
  del file_6
  del file_7
  del file_8
  del file_9
  del file_10
  del file_11
  del file_12
  del file_13
  del file_14
  del file_15
  del file_16
  del file_17
  del file_18
  del file_19
  del file_20
  del file_21
  del file_22
  del file_23
  del file_24
  del file_25
  </code></pre>
  
  <p>I want to be able to import a subset of the files, but still have the following steps (putting them into one varibale and deleting individual files) automated. I succeeded for the first following step (putting them into one varibale), but not for the second following step (deleting individual files).
  I'd like to somehow loop trough the variables and check if they exist; and if they do, delete them. How to do this?</p>