requests下载大文件内存占有过高

Zss 发表于:

在下载大文件时,若直接接收所有的数据,将导致内存可能溢出的问题,所以需要分块下载

r = requests.get(url=url,headers=headers, stream=True)

f = open("VMware.exe", "wb")
#chunk是指定每次写入的大小,每次只写了512byte
for chunk in r.iter_content(chunk_size=1024):
    if chunk:
        f.write(chunk)
        
with open("VMware.exe", "wb") as f:
    f.write(r.content)

第一种方式分块下载内存占用低,但是速度下降,速度应该是和设置的接收大小有关

第二种一次性接收导致内存占用非常大