urllib.urlopen() の後に close() を呼び出す必要がありますか? 質問する

urllib.urlopen() の後に close() を呼び出す必要がありますか? 質問する

私は Python 初心者で、他の人のコードを読んでいます。

urllib.urlopen()の後に ? が続く必要がありますurllib.close()。そうしないと、接続がリークしてしまいます。正しいですか?

ベストアンサー1

このcloseメソッドは、結果urllib.urlopenないあなたが考えているモジュールurllib自体について(あなたが言及しているようにurllib.close、それは存在しません)。

最善のアプローチ: x = urllib.urlopen(u)etc の代わりに以下を使用します:

import contextlib

with contextlib.closing(urllib.urlopen(u)) as x:
   ...use x at will here...

ステートメントwithclosingコンテキスト マネージャーにより、例外が発生した場合でも適切なクローズが保証されます。

おすすめ記事