由于普通下载时,文件会缓存在内存中,当文件大小超过内存时,会报内存溢出错误,从而下载失败。
12345678910
import requests# stream=True 客户端不会立即下载文件的内容,但客户端与服务端会持续建立 HTTP 连接with requests.get(url, stream=True) as r: r.raise_for_status() with open(filename, 'wb') as fp: # chunk_size 实现分块下载 for chunk in r.iter_content(chunk_size=512): if chunk: fp.write(chunk)