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 файл закрывается.

→ Ссылка