用tqdm和rich为固定路径和目标的python算法代码实现进度条
适用场景
在存在固定长度的算法中可以可视化算法执行的过程,比如对一个固定长度的数组的遍历,就是一种适合使用进度条来进行可视化的场景。而一些条件循环,比如while
循环,不一定适合使用进度条来对算法执行过程进行可视化,典型的一个场景就是自洽的优化算法。
tqdm
进度条的使用方法与效果
调用的方法也非常的容易,只需要将我们常用的range
函数替换成tqdm
中自带的trange
即可。
# test_tqdm.py
from tqdm import trange
import time
for i in trange(10):
time.sleep(1)
以下是运行中间过程的一个显示场景
[dechin@dechin-manjaro progressbar]$ python3 test_tqdm.py
40%|████████████████ | 4/10 [00:04<00:06, 1.00s/it]
通过多次引用trange
,还可以实现多个进度条打印的功能,但是这里如果第一层的数量较多,会导致屏幕输出过于复杂:
# test_tqdm.py
from tqdm import trange
import time
for i in trange(10):
for j in trange(10):
time.sleep(0.1)
以下是执行过程中的输出:
[dechin@dechin-20n2s01200 progressbar]$ python3 test_tqdm.py
100%|███████████████████████████████████████| 10/10 [00:01<00:00, 9.88it/s]
100%|███████████████████████████████████████| 10/10 [00:01<00:00, 9.88it/s]
100%|███████████████████████████████████████| 10/10 [00:01<00:00, 9.88it/s]
30%|████████████ | 3/10 [00:03<00:07, 1.01s/it]
rich
进度条的使用方法与效果
使用的方法与tqdm有些类似的,也是直接调用rich
中的track
对range
函数进行封装:
# test_rich.py
from rich.progress import track
import time
for i in track(range(15)):
time.sleep(1)
与简单的tqdm不同的是,rich支持种类众多的色彩,下面粘贴的执行过程显示,其实是带有彩色的:
[dechin@dechin-manjaro progressbar]$ python3 test_rich.py
Working... ━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 27% 0:00:12
版权声明
本文首发链接为:https://www.cnblogs.com/dechinphy/p/progress-bar.html
作者ID:DechinPhy
更多原著文章请参考:https://www.cnblogs.com/dechinphy/