È questo il modo giusto per usare l'istruzione python "with" in combinazione con un blocco try-tranne ?:
try:
with open("file", "r") as f:
line = f.readline()
except IOError:
<whatever>
Se lo è, quindi considerando il vecchio modo di fare le cose:
try:
f = open("file", "r")
line = f.readline()
except IOError:
<whatever>
finally:
f.close()
Il vantaggio principale dell'istruzione "with" qui è che possiamo sbarazzarci di tre righe di codice? Non mi sembra così convincente per questo caso d'uso (anche se capisco che l'istruzione "with" ha altri usi).
EDIT: la funzionalità dei due blocchi di codice precedenti è identica?
EDIT2: Le prime risposte parlano generalmente dei vantaggi dell'utilizzo di "con", ma qui sembrano di beneficio marginale. Abbiamo chiamato tutti (o avremmo dovuto) esplicitamente f.close () per anni. Suppongo che un vantaggio sia che i programmatori sciatti trarranno vantaggio dall'utilizzo di "con".