См. docs.python.org :
Когда вы закончите работу с файлом, вызовите f.close (), чтобы закрыть его и освободить все занятые системные ресурсы.вверх по открытому файлу.После вызова f.close () попытки использования файлового объекта автоматически завершатся неудачей.
Следовательно, элегантно используйте close()
с try/finally
:
f = open('file.txt', 'r')
try:
# do stuff with f
finally:
f.close()
Это гарантирует, чтодаже если # do stuff with f
вызывает исключение, f
все равно будет правильно закрыто.
Обратите внимание, что open
должно появиться за пределами из try
.Если open
само вызывает исключение, файл не был открыт и не нуждается в закрытии.Кроме того, если open
вызывает исключение, его результатом является , а не , присвоенный f
, и это ошибка для вызова f.close()
.