Est-ce la bonne façon d'utiliser le python « avec » déclaration en combinaison avec un try-except bloc ?:En utilisant python « avec » déclaration avec try-except
try:
with open("file", "r") as f:
line = f.readline()
except IOError:
<whatever>
Si elle est, puis envisage l'ancienne façon de faire les choses:
try:
f = open("file", "r")
line = f.readline()
except IOError:
<whatever>
finally:
f.close()
est le principal avantage de la déclaration « avec » ici que nous pouvons nous débarrasser de trois lignes de code? Cela ne me semble pas très convaincant pour ce cas d'utilisation (bien que je comprenne 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 de l'utilisation de «avec», mais celles-ci semblent présenter un avantage marginal ici. Nous avons tous (ou aurions dû) appeler explicitement f.close() depuis des années. Je suppose que l'un des avantages est que les codeurs bâclés bénéficieront d'utiliser "avec".
double possible de [Attraper une exception en utilisant un Python 'avec' déclaration] (http://stackoverflow.com/questions/713794/catching -an-exception-while-using-a-python-with-statement) –