python requests下载文件显示进度条
时间: 2024-09-11 13:03:13 浏览: 109
在Python中,使用`requests`库下载文件时,可以通过自定义一个进度条来显示下载进度。以下是一个基本的实现方法:
首先,需要安装`requests`库(如果尚未安装):
```bash
pip install requests
```
然后,可以使用以下代码来实现带有进度条的文件下载:
```python
import requests
from tqdm import tqdm
def download_file(url, file_name):
# 发起请求并获取响应对象
response = requests.get(url, stream=True)
# 确保请求成功
response.raise_for_status()
# 获取文件总大小
total_size = int(response.headers.get('content-length', 0))
# 打开文件准备写入
with open(file_name, 'wb') as file:
# 使用tqdm创建进度条
for data in tqdm(response.iter_content(1024), total=total_size/1024, unit='KB', unit_scale=True):
# 将数据写入文件
file.write(data)
# 使用示例
download_url = 'http://example.com/file.zip' # 替换为你需要下载的文件链接
download_file(download_url, 'downloaded_file.zip')
```
在上述代码中,`requests.get`用于发起网络请求,`stream=True`参数使得我们能够以流的方式处理数据,而不是一次性加载整个文件到内存。`response.iter_content`方法用于迭代文件内容,我们以1024字节为单位进行迭代,并使用`tqdm`库来创建和更新进度条。
注意,`tqdm`是一个快速、可扩展的Python进度条库,它可以在长循环中添加一个进度提示信息,用户只需要封装任意的迭代器`tqdm(iterator)`。如果你没有安装`tqdm`,可以通过以下命令安装:
```bash
pip install tqdm
```
阅读全文