Requests是一个非常好用的库,我想用它来下载大文件(>1GB)。 问题是无法将整个文件保存在内存中,我需要分块读取。下面的代码存在这个问题:
import requests
def DownloadFile(url)
local_filename = url.split('/')[-1]
r = requests.get(url)
f = open(local_filename, 'wb')
for chunk in r.iter_content(chunk_size=512 * 1024):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
f.close()
return
以某种原因,它不能按照这种方式工作;它在保存到文件之前仍然会将响应加载到内存中。