使用Python请求库保存大文件

可能重复:
如何使用请求下载图片

我知道获取一个url就像requests.get一样简单,我可以得到原始响应主体,并将其保存到一个文件,但对于大型文件,有没有办法直接stream到一个文件? 就像我正在下载一个电影或它的东西?

奇怪的是,请求没有任何简单的事情。 你必须遍历这个响应,并把这些块写到一个文件中:

 response = requests.get('http://www.example.com/image.jpg', stream=True) # Throw an error for bad status codes response.raise_for_status() with open('output.jpg', 'wb') as handle: for block in response.iter_content(1024): handle.write(block) 

我通常只使用urllib.urlretrieve() 。 它的工作原理,但如果你需要使用会话或某种authentication,上面的代码也可以。