Я написал следующее:
y=open('S:\\02012014EASTERN.TXT','r').readlines()
Я не знаю, закрыт ли файл сейчас. Как мне это проверить?
Я написал следующее:
y=open('S:\\02012014EASTERN.TXT','r').readlines()
Я не знаю, закрыт ли файл сейчас. Как мне это проверить?
Вы не можете проверить это, потому что вы никогда не сохраняли ссылку на файловый объект.
В качестве менеджера контекста лучше использовать файловый объект, который гарантирует, что файловый объект будет закрыт:
with open('S:\\02012014EASTERN.TXT','r') as ofh:
y = ofh.readlines()
Поскольку CPython использует подсчет ссылок, в вашем коде файловый объект будет немедленно закрыт и очищен, но вы не можете рассчитывать на такое поведение в других реализациях Python, где сборка мусора может задерживаться.
В то время как другие ответы дают вам лучший подход (используя оператор with), это то, что вы можете сделать, если вам интересно:
f = open('S:\\02012014EASTERN.TXT','r')
y = f.readlines()
print(f.closed)
f.close()
print(f.closed)
Первый оператор «print» даст «False», а второй — «True».
Но опять же, в «реальном» коде вместо этого используйте конструкцию «с». Это сделает закрытие для вас.
Использовать:
with open(file) as f:
your code here
он обеспечит закрытие файла, вызвав метод __exit__
после завершения блока операторов with
.