построчная обработка файлов, цикл for по сравнению с

Я пытаюсь понять компромиссы/различия между ними способы открытия файлов для построчной обработки

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)

14
задан Levon 21 June 2012 в 01:24
поделиться