Python не может удалить файл после его закрытия, "будучи использован другим процессом",

Я пытаюсь удалить файл после чтения из него, но получаю "WindowsError: [Ошибка 32] Процесс не может получить доступ к файлу, потому что он используется другим процессом"

file = open(self.filePath)
for line in file:
        #do things
file.close()

os.remove(self.filePath) #throws error

os.rename(self.filePath, self.filePath + "old") #throws same error

любые идеи?

Благодарю вас!

UPDATE: я только что перезапустил мой (окна 7), запустил eclipse, переместил os.remove( "c:\file\file.txt" ) в первую строку моего script, запустил и получил ту же ошибку.

ОБНОВЛЕНИЕ 2: Я использовал Windows Explorer для перехода к файлу. В первый раз я не смог его удалить, он использовался системой "Система". вторая попытка удаления удалась. файла больше нет. теперь, когда я бегу   os.remove( "C:\файл\file.txt" ) WindowsError: [Ошибка 32] Процесс не может получить доступ к файлу, потому что он используется другим процессом: 'c:\file\file.txt' то я смотрю в Windows Explorer, и файл возвращается, пустой. я могу удалить в проводнике, а затем, когда я запустил script для удаления, он выдает ошибку (и создает пустой файл). любая идея, что здесь может происходить?

ОБНОВЛЕНИЕ 3: я идиот. я открывал файл при инициализации объекта когда я тестировал, переместив "удалить" поверх script, я должен был поместить его вверху, а не после создания моих объектов

Извините за то, что вы не торопитесь, я работал над чем-то во все выходные, которые должны были завтра и в панике, когда он не запустил

Ответы

Ответ 1

Другая возможность заключается в том, что при проверке вируса файл остается открытым при попытке удалить или переименовать его. Это происходит не часто, но когда это происходит, это действительно раздражает, чтобы отследить.

Ответ 2

Используйте Unlocker (проще) или Process Explorer, чтобы увидеть, какая программа открыта.

(как предложено Anon)

Ответ 3

У меня такая же проблема прямо сейчас с доступом-AB. Process Explorer показывает, что.. 'python.exe' использует файл, который я хочу удалить. Я не могу убить Python. Это раздражающее решение.

Ответ 4

Есть много возможных причин для этого. Однако наиболее вероятно, что у вас открыто окно каталога, которое содержит файл, или что такое окно было закрыто в последнее время, и Windows еще не очистила каталог из своего кеша. Попробуйте закрыть любое окно каталога, которое вы искали, и повторите попытку.