with closing(requests.get(file_src,headers=headers,stream=True)) as response:
with open(filename, 'wb') as fd:
for chunk in response.iter_content(128):
fd.write(chunk)
个人只是理解为:
一种良好的文件管理,接收和自动关闭流,但是还是不理解代码的意思,希望大佬给个通俗易懂的解释~谢谢
你要理解上下文管理的原理是什么。
一个对象有
__enter__
和__exit__
方法,使用 with 时,它将先调用对象的__enter__
方法,在退出时再调用__exit__
方法。具体的清理代码就在这两个魔术函数中。有一些类型已经写好了上下文管理器,就可以直接用 with ,比如 file object,
但有一些类型不清楚该使用哪种方式关闭资源,所以设计一个 closing 函数来手动关闭。
当你退出 with 的时候,会运行该对象的 close 方法
刚刚在手册上找到了,https://docs.python.org/3/lib...