小文件的话可以直接都存在内存里 然后把整个r.content写进去。但是文件一大,内存肯定就炸了。
所以查看手册,发现可以分块拿数据,作为一个iter。write chunk by chunk。
def download_link_path(url, path, chunk_size=512):
r = req.get(url, stream=True)
f = open(path, "wb")
# chunk是指定每次写入的大小,单位字节
for chunk in r.iter_content(chunk_size=chunk_size):
if chunk:
f.write(chunk)
512字节为一个chunk写入。