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