我是 Python 新手,正在阅读别人的代码:
I'm new to Python and reading someone else's code:
是否应该在urllib.urlopen() 后接urllib.close()?否则,会泄漏连接,对吗?
should urllib.urlopen() be followed by urllib.close()? Otherwise, one would leak connections, correct?
推荐答案必须在 urllib.urlopen, not 在您所考虑的 urllib 模块本身上(正如您提到的 urllib.close - 它不存在).
The close method must be called on the result of urllib.urlopen, not on the urllib module itself as you're thinking about (as you mention urllib.close -- which doesn't exist).
最好的方法:代替 x = urllib.urlopen(u) 等,使用:
The best approach: instead of x = urllib.urlopen(u) etc, use:
import contextlib with contextlib.closing(urllib.urlopen(u)) as x: ...use x at will here...with 语句和 closure 上下文管理器将确保即使出现异常也能正确关闭.
The with statement, and the closing context manager, will ensure proper closure even in presence of exceptions.
更多推荐
我应该在 urllib.urlopen() 之后调用 close() 吗?
发布评论