说我有以下代码:
remote = urlopen('www...../file.txt')
with open(file='file', mode='wb') as local:
local.write(remote.read())
我还需要做:
local.close()
remote.close()
我怎么知道何时需要close()
以及Python何时为我服务?
答案 0 :(得分:2)
如果使用上下文管理器(即“ with ..”语句),则无需使用.close
。
在这种情况下,Python为您管理资源。 This是一篇很好的文章,详细介绍了它的工作方式。
在可能的情况下使用上下文管理器是一种很好的做法,您可以使用contextlib库创建自己的上下文管理器。
答案 1 :(得分:1)
使用python with
语句时,不必显式关闭文件。因此,您对local
对象很满意。 this post解释了为什么您应该显式关闭remote
资源的原因。