要给文件下载加进度条,你可以使用`requests`库来进行文件下载,并结合`tqdm`库来显示进度条。
首先,确保你已经安装了`requests`和`tqdm`库。如果没有安装,可以使用以下命令进行安装:
```
pip install requests tqdm
```
接下来,你可以使用以下代码来下载文件并显示进度条:
```python
import requests
from tqdm import tqdm
def download_file(url, file_path):
# 发送HTTP GET请求,stream=True表示逐块下载文件
response = requests.get(url, stream=True)
# 获取文件的总大小
total_size = int(response.headers.get('content-length', 0))
# 创建一个进度条对象
progress_bar = tqdm(total=total_size, unit='B', unit_scale=True)
with open(file_path, 'wb') as f:
for chunk in response.iter_content(1024):
if chunk: # 过滤掉空的chunk
# 写入文件
f.write(chunk)
# 更新进度条
progress_bar.update(len(chunk))
# 关闭进度条
progress_bar.close()
# 使用示例
url = 'https://example.com/example-file.txt'
file_path = 'example-file.txt'
download_file(url, file_path)
```
在上面的代码中,首先发送一个HTTP GET请求来获取文件的内容(使用`stream=True`表示逐块下载)。然后,通过读取响应头中的`content-length`字段获取文件的总大小,并创建一个进度条对象。接下来,通过循环不断读取响应内容的块,并将其写入文件中,同时更新进度条。最后,关闭进度条。
你只需要将`url`替换为你要下载的文件的URL,`file_path`替换为你想保存文件的路径和文件名即可。运行代码后,你将会看到一个带有下载进度的进度条。