用tqdm和rich为固定长度的python代码实现进度条

2021-03-06 05:27

阅读:468

标签:ref   不同   tps   屏幕   test   参考   常用   blog   time   

适用场景

在存在固定长度的算法中可以可视化算法执行的过程,比如对一个固定长度的数组的遍历,就是一种适合使用进度条来进行可视化的场景。而一些条件循环,比如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

通过多次引用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

rich进度条的使用方法与效果

使用的方法与tqdm有些类似的,也是直接调用rich中的trackrange函数进行封装:

# 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/

用tqdm和rich为固定长度的python代码实现进度条

标签:ref   不同   tps   屏幕   test   参考   常用   blog   time   

原文地址:https://www.cnblogs.com/dechinphy/p/progress-bar.html


评论


亲,登录后才可以留言!