ligne-par-ligne de traitement de dossier, pour la boucle avec vs

Je suis en train d'essayer de comprendre les compromis et les différences entre ces
les moyens de l'ouverture de fichiers pour ligne-par-ligne de traitement

with open('data.txt') as inf:
    for line in inf:
       #etc

vs

for line in open('data.txt'):
   # etc

Je comprends que l'utilisation de with assure le fichier est fermé lors de l'
"à bloc" (suite?) est sorti (ou une exception est contré). Donc, j'ai été en utilisant with depuis que j'ai appris sur le sujet ici.

Re for-boucle: De la recherche à travers le net et DONC, il semble que si le fichier
est fermé lorsque le for-boucle est sortie est dépendant de l'implémentation? Et
Je ne pouvais pas trouver quelque chose sur la façon dont cette construction de traiter avec
des exceptions. Personne ne sait?

Si je me suis trompé à propos de tout ce qui précède, je vous en serais reconnaissant les corrections,
sinon est-il une raison pour utiliser la for construire sur le
with? (En supposant que vous avez un choix, c'est à dire, ne sont pas limités par une version de Python)

OriginalL'auteur Levon | 2012-06-21