В Inline "open and write file" подразумевается закрытие()?

В Python ( > 2.7) код:

open('tick.001', 'w').write('test')

имеет тот же результат, что и:

ftest  = open('tick.001', 'w')
ftest.write('test')
ftest.close()

и где найти документацию о "закрытии" для этой встроенной функциональности?

Ответы

Ответ 1

close() здесь происходит, когда объект file освобождается из памяти, как часть его логики удаления. Поскольку современные Python на других виртуальных машинах, например Java и .NET, не могут контролировать, когда объект освобожден из памяти, он уже не считается хорошим Python для open(), как это, без close(). Сегодня рекомендуется использовать оператор with, который явно запрашивает close() при выходе из блока:

with open('myfile') as f:
    # use the file
# when you get back out to this level of code, the file is closed

Если вам не нужно имя f для файла, вы можете опустить предложение as из инструкции:

with open('myfile'):
    # use the file
# when you get back out to this level of code, the file is closed