Python requests库下载文件时展示进度条的实现方法

在Python中,使用 requests库下载文件时,可以通过流式下载来展示进度条。这种方法能够在下载过程中实时展示文件的下载进度,对于提升用户体验非常有帮助。以下是一个展示进度条的实现方法:

首先,需要安装 requests库和 tqdm库,tqdm是一个用于展示进度条的库。可以使用pip进行安装:

pip install requests tqdm
​
 
 

然后,可以使用以下代码实现文件下载并展示进度条:

import requests
from tqdm import tqdm

def download_file(url, filename):
    # 发起GET请求,以流式方式获取数据
    response = requests.get(url, stream=True)

    # 获取文件总大小,用于设置进度条
    total_size = int(response.headers.get('content-length', 0))

    # 使用tqdm创建进度条
    with tqdm(total=total_size, unit='B', unit_scale=True, desc=filename) as bar:
        # 以二进制写入模式打开文件
        with open(filename, 'wb') as file:
            # 按块读取数据
            for data in response.iter_content(chunk_size=1024):
                # 写入数据
                file.write(data)
                # 更新进度条
                bar.update(len(data))

# 示例:下载一个文件
download_file('https://example.com/file.zip', 'file.zip')
​
 
 

在这个例子中,requests.get函数使用 stream=True参数来启用流式下载。response.iter_content方法用于按块读取数据,这里的块大小设置为1024字节。tqdm进度条根据读取的数据量动态更新,直到文件下载完成。

posted @   lingxingqi  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示