title: Why won't python allow me to delete files?
body: <p>I've created a python script that gets a list of files from a text file and deletes them if they're empty.  It correctly detects empty files but it doesn't want to delete them.  It gives me:</p>
  
  <pre><code>(32, 'The process cannot access the file because it is being used by another process')
  </code></pre>
  
  <p>I've used two different tools to check whether the files are locked or not and I'm certain that they are not.  I used sysinternals process explorer and LockHunter.  Furthermore, I'm able to just manually delete the files myself.  I obviously don't want to do that for all of them as there are hundreds in various locations.</p>
  
  <p>The script:</p>
  
  <pre><code>import os.path
  import sys
  
  def DeleteFilesFromListIfBlank(PathToListOfFiles):
      ListOfFiles = open(PathToListOfFiles)
      FilesToCheck = [];
      for line in ListOfFiles.readlines():
          if(len(line) &gt; 1):
              line = line.rstrip();
              FilesToCheck.append(line)
      print "Found %s files to check.  Starting check." % len(FilesToCheck)
  
      FilesToRemove = [];
      for line in FilesToCheck:        
          #print "Opening %s" % line
          try:
              ActiveFile = open(line);
              Length = len(ActiveFile.read())
              if(Length &lt; 691 and ActiveFile.read() == ""):
                  print "Deleting %s" % line
                  os.unlink(line);
              else:
                  print "Keeping %s" % line
          except IOError,message:
              print "Could not open file: $s" % message
          except Exception as inst:
              print inst.args
  
  DeleteFilesFromListIfBlank("C:\\ListOfResx.txt")
  </code></pre>
  
  <p>I've tried using both os.unlink and os.remove.  I'm running Python 2.6 on Vista64</p>
  
  <p>Thanks</p>