Python: нужно ли закрывать файл, открытый таким образом?
Открытие и закрытие файла записывается так:
log = open(logFile,"a")
log.write(message)
log.close()
Или так: файл закрывается автоматически:
with open(logFile, "a") as log: log.write(message)
Но недавно я наткнулся на
open(logFile,"a").write(message)
Это прекрасная лаконичная запись. Она мне очень нравится. Но нужно ли закрывать файл в таком случае? и как это сделать?
Пытался найти информацию на эту тему но повсюду только копипаста первых двух способов.
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Файл открытый таким образом запишется на диск и закроется не в предсказуемое время. Если таких открытий сделать много, то возможны глюки и коллизии.
После выхода из функции что его вызвала его должен сожрать Гарбедж Коллектор. В какой момент он это сделает не известно. При удалении объекта через GC файл закрывается.