在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
进度条根据读取的数据量动态更新,直到文件下载完成。
以上就是使用Python requests
库下载文件时展示进度条的一种实现方法,它不仅简洁易懂,而且在实际应用中非常实用。