Я пытаюсь понять компромисс между ними и способы открытия файлов для линейной обработки
with open('data.txt') as inf:
for line in inf:
#etc
против
for line in open('data.txt'):
# etc
Я понимаю, что использование with
гарантирует, что файл закрыт, когда
"with-block" (suite?) завершен (или исключение встречается). Поэтому я использовал with
с тех пор, как я узнал об этом здесь.
Re for
-loop: от поиска по сети и SO, кажется, что файл
закрывается при выходе из for
-loop, зависит от реализации? А также
Я не мог найти ничего о том, как эта конструкция будет иметь дело с
исключения. Кто-нибудь знает?
Если я ошибаюсь в чем-либо выше, я был бы признателен за исправления,
в противном случае существует причина когда-либо использовать конструкцию for
над
with
? (Предполагая, что у вас есть выбор, т.е. Не ограничены версией Python)