Ist dies der richtige Weg, um die Python-Anweisung "with" in Kombination mit einem Try-Except-Block zu verwenden?:
try:
with open("file", "r") as f:
line = f.readline()
except IOError:
<whatever>
Wenn ja, dann unter Berücksichtigung der alten Vorgehensweise:
try:
f = open("file", "r")
line = f.readline()
except IOError:
<whatever>
finally:
f.close()
Ist der Hauptvorteil der "with" -Anweisung hier, dass wir drei Codezeilen entfernen können? Es scheint mir für diesen Anwendungsfall nicht so überzeugend zu sein (obwohl ich verstehe, dass die "with" -Anweisung andere Verwendungszwecke hat).
EDIT: Ist die Funktionalität der beiden oben genannten Codeblöcke identisch?
EDIT2: Die ersten Antworten sprechen allgemein über die Vorteile der Verwendung von "mit", aber diese scheinen hier von geringem Nutzen zu sein. Wir alle haben f.close () jahrelang explizit aufgerufen (oder hätten es auch tun sollen). Ich nehme an, ein Vorteil ist, dass schlampige Codierer von der Verwendung von "with" profitieren.