Pythonの「with」ステートメントをtry-exceptブロックで使用する
これは、Pythonの「with」ステートメントをtry-exceptブロックと組み合わせて使用する正しい方法ですか?: 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」ステートメントの主な利点は、3行のコードを削除できることですか?この使用例では、私にとって説得力があるとは思えません( "with"ステートメントには他の使用があることは理解していますが)。 編集:上記の2つのコードブロックの機能は同じですか? EDIT2:最初のいくつかの回答は「with」を使用することの利点について一般的に述べていますが、それらはここではわずかな利点のようです。私たちは何年もの間、明示的にf.close()を呼び出してきました(またはそうすべきだったはずです)。1つの利点は、ずさんなコーダーが「with」を使用することから利益を得るということです。