Python请求 - 下载进度条

时间:2017-08-01 13:32:08

标签: python-requests

我向服务器发出POST请求以生成CSV文件,POST请求的响应是我要写入文件的CSV数据。

我永远无法知道CSV文件的大小(可以是10MB,100MB或1000MB),因此没有内容长度标题。

我编写了一个函数,可以下载向服务器发出POST请求,生成CSV文件并将响应写入CSV文件。但是,我正在努力进步吧。

如何添加进度条?

r = requests.post(URL, data, stream=True)
#Download progress here

1 个答案:

答案 0 :(得分:2)

def download_file(url, local_path="./"):
    local_filename = url.split('/')[-1]
    path = local_path + local_filename

    r = requests.get(url, stream=True)
    total_size = int(r.headers.get('content-length', 0))

    with open(local_filename, 'wb') as f:
        for chunk in tqdm(r.iter_content(32*1024), total=total_size,unit='B', unit_scale=True):
            if chunk:
                f.write(chunk)

    return path