Requests真是个不错的图书馆.我想用它下载大文件(>;1 GB). 问题是不可能将整个文件保存在内存中;我需要分块读取.这是以下代码的问题:
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
出于某种原因,它不能这样工作:它仍然会在将响应保存到文件之前将其加载到内存中.
UPDATE个
如果你需要一个可以从FTP下载大文件的小客户端(Python2.x/3.x),你可以找到here个.它支持多线程&;重新连接(它会监视连接)并为下载任务调整套接字参数.