import gc
import os
gc.disable()
open('tmp.txt', 'w').close()
class A:
def __init__(self):
self.fo = open('tmp.txt')
a = A()
os.remove('tmp.txt')
Когда я выполнить сценарий, я получил PermissionError: [WinError 32]
.Затем я стараюсь это:Ошибка при удалении файла
import gc
import os
gc.disable()
open('tmp.txt', 'w').close()
class A:
def __init__(self):
self.fo = open('tmp.txt')
a = A()
# or a = None
del a
os.remove('tmp.txt')
Хотя это удалось на этот раз, но я не знаю, почему. Не могли бы вы рассказать мне, почему?
Моя версия python - 3.5.2.
Это на Windows? –
'class A' хранит открытый файл в файле, поэтому вполне вероятно, что ОС не позволяет вам удалять открытые файлы (что в случае с окнами AFAIK) – UnholySheep
PermissionError: [WinError 32]: все окна ! –