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
由于某种原因,它不能以这种方式工作:它仍然在将响应保存到文件之前将其加载到内存中。
更新
如果你需要一个可以从 FTP 下载大文件的小客户端(Python 2.x /3.x),你可以在这里找到它。它支持多线程和重新连接(它确实监视连接),它还为下载任务调整套接字参数。