Це правильний спосіб використовувати оператор python "with" у поєднанні з блоком try-Osim ?:
try:
with open("file", "r") as f:
line = f.readline()
except IOError:
<whatever>
Якщо це так, то враховуючи старий спосіб робити щось:
try:
f = open("file", "r")
line = f.readline()
except IOError:
<whatever>
finally:
f.close()
Чи є тут основною перевагою твердження "with" те, що ми можемо позбутися трьох рядків коду? Мені це не здається привабливим для цього випадку використання (хоча я розумію, що оператор "with" має і інші цілі).
РЕДАГУВАТИ: Чи однакова функціональність вищезазначених двох блоків коду?
EDIT2: Перші кілька відповідей загалом говорять про переваги використання "з", але вони, здається, тут незначні. Ми всі роками (або повинні були) явно викликати f.close (). Я вважаю, одна перевага полягає в тому, що недбалі кодери виграють від використання "with".