В Inline "открыть и записать файл" подразумевается close ()? - PullRequest
13 голосов
/ 19 марта 2011

В Python (> 2.7) код:

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

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

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

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

1 Ответ

23 голосов
/ 19 марта 2011

close() здесь происходит, когда объект file освобождается из памяти, как часть его логики удаления. Поскольку современные Pythons на других виртуальных машинах - таких как 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...