用python进度条一般以图形方式显示已经完成任务量和未完成任务量,并以动态文字方式显示任务的完成度。
时间: 2023-06-01 21:01:56 浏览: 179
Python中有很多库可以用来实现进度条,常用的有tqdm、progress、progressbar等。这里以tqdm为例,介绍如何使用它来实现进度条。
首先需要安装tqdm库,可以使用pip命令进行安装:
```
pip install tqdm
```
接下来,我们来看一个简单的示例:
```python
from tqdm import tqdm
import time
for i in tqdm(range(10)):
time.sleep(1)
```
这段代码的作用是循环10次,每次暂停1秒钟,并在控制台上显示进度条。tqdm函数的参数是一个迭代器,表示需要迭代的次数。在循环体内部可以执行任务,例如下载文件、处理数据等。
运行上面的代码,可以看到如下的输出:
```
100%|██████████| 10/10 [00:10<00:00, 1.00s/it]
```
进度条的样式是一个绿色的方块,表示已完成的任务量。在方块的右侧还有一个数字,表示已完成的任务数量和总任务数量。在方块的下方还有一个时间,表示已用的时间和预计剩余的时间。
tqdm还支持多种样式的进度条,可以通过设置参数来改变样式。例如:
```python
from tqdm import tqdm
import time
for i in tqdm(range(10), bar_format='{l_bar}{bar}| {n_fmt}/{total_fmt} [{elapsed}<{remaining}]'):
time.sleep(1)
```
这段代码的作用和上面的示例相同,只是进度条的样式发生了改变。bar_format参数可以设置进度条的格式,其中{l_bar}表示进度条左侧的文本,{bar}表示进度条本身,{n_fmt}表示已完成的任务数量,{total_fmt}表示总任务数量,{elapsed}表示已用的时间,{remaining}表示预计剩余的时间。
除了显示进度条之外,tqdm还可以显示其他信息。例如:
```python
from tqdm import tqdm
import time
for i in tqdm(range(10), desc='Downloading', unit='file'):
time.sleep(1)
```
这段代码的作用是循环10次,每次暂停1秒钟,并在控制台上显示进度条和文本。desc参数表示文本的内容,unit参数表示单位,可以是任何字符串。
tqdm还支持嵌套进度条,可以用来显示多个任务的进度。例如:
```python
from tqdm import tqdm
import time
for i in tqdm(range(3), desc='Batch', unit='batch'):
for j in tqdm(range(10), desc='Downloading', unit='file'):
time.sleep(1)
```
这段代码的作用是嵌套两个循环,外层循环表示批次,内层循环表示文件下载。运行代码可以看到如下的输出:
```
Batch: 100%|██████████| 3/3 [00:30<00:00, 10.09s/batch]
Downloading: 100%|██████████| 10/10 [00:10<00:00, 1.01s/file]
Downloading: 100%|██████████| 10/10 [00:10<00:00, 1.01s/file]
Downloading: 100%|██████████| 10/10 [00:10<00:00, 1.01s/file]
```
其中,外层进度条表示批次的进度,内层进度条表示文件下载的进度。
阅读全文