Utilizzo dell’istruzione “with” di Python con il blocco try-except

| | |

È questo il modo giusto per usare l'istruzione python "with" in combinazione con un blocco try-except?:

try: with open("file", "r") as f: line = f.readline() eccetto IOError: <qualunque> 

Se lo è, allora considerando il vecchio modo di fare le cose:

try: f = open("file", "r") line = f.readline() tranne IOError: <qualunque> infine: f.close() 

Il vantaggio principale dell'istruzione "with" è che possiamo eliminare tre righe di codice? Non mi sembra così interessante per questo caso d'uso (anche se capisco che l'istruzione "with" ha altri usi).

EDIT: è la funzionalità di quanto sopra due blocchi di codice identici?

EDIT2: le prime risposte parlano generalmente dei vantaggi dell'utilizzo di "with", ma qui sembrano di beneficio marginale. Siamo stati tutti (o avremmo dovuto esserlo) esplicitamente chiamando f.close() per anni. Suppongo che un vantaggio sia che i programmatori sciatti trarranno vantaggio dall'utilizzo di "with".