¿Es esta la forma correcta de utilizar el pitón "con" declaración en combinación con un bloque try-excepto ?:usando Python "con" declaración con excepción try-bloque
try:
with open("file", "r") as f:
line = f.readline()
except IOError:
<whatever>
Si lo es, entonces considerando la vieja manera de hacer las cosas:
try:
f = open("file", "r")
line = f.readline()
except IOError:
<whatever>
finally:
f.close()
Es el principal beneficio de la expresión "with" aquí que podemos deshacernos de tres líneas de código? No me parece convincente para este caso de uso (aunque entiendo que la declaración "con" tiene otros usos).
EDITAR: ¿Es idéntica la funcionalidad de los dos bloques de código anteriores?
EDIT2 EDIT2: Las primeras respuestas hablan generalmente acerca de los beneficios de usar "con", pero las que 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 del uso de "con".
Posible duplicado de [detectar una excepción mientras se utiliza un pitón 'con' declaración] (http://stackoverflow.com/questions/713794/catching -an-exception-while-using-a-python-with-statement) –