Est-ce la bonne façon d'utiliser l'instruction python "with" en combinaison avec un bloc try-except?:
try:
with open("file", "r") as f:
line = f.readline()
except IOError:
<whatever>
Si tel est le cas, compte tenu de l'ancienne façon de faire les choses:
try:
f = open("file", "r")
line = f.readline()
except IOError:
<whatever>
finally:
f.close()
Est-ce que le principal avantage de la déclaration «avec» ici est que nous pouvons nous débarrasser de trois lignes de code? Cela ne me semble pas convaincant pour ce cas d'utilisation (même si je comprends que l'instruction "with" a d'autres utilisations).
EDIT: La fonctionnalité des deux blocs de code ci-dessus est-elle identique?
EDIT2: Les premières réponses parlent généralement des avantages d'utiliser "avec", mais ceux-ci semblent être marginaux ici. Nous avons tous (ou aurions dû) appeler explicitement f.close () depuis des années. Je suppose qu'un avantage est que les codeurs bâclés bénéficieront de l'utilisation de "avec".