¿Es esta la forma correcta de usar la declaración de python "con" en combinación con un bloque try-except ?:
try:
with open("file", "r") as f:
line = f.readline()
except IOError:
<whatever>
Si es así, entonces considerando la antigua forma de hacer las cosas:
try:
f = open("file", "r")
line = f.readline()
except IOError:
<whatever>
finally:
f.close()
¿El principal beneficio de la declaración "con" aquí es que podemos deshacernos de tres líneas de código? No me parece tan convincente para este caso de uso (aunque entiendo que la declaración "with" tiene otros usos).
EDITAR: ¿Es idéntica la funcionalidad de los dos bloques de código anteriores?
EDIT2: Las primeras respuestas hablan en general sobre los beneficios de usar "con", pero esos parecen tener un beneficio marginal aquí. Todos hemos estado (o deberíamos haber estado) llamando explícitamente a f.close () durante años. Supongo que un beneficio es que los codificadores descuidados se beneficiarán de usar "con".