前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用tqdm和rich为固定路径和目标的python算法代码实现进度条

用tqdm和rich为固定路径和目标的python算法代码实现进度条

作者头像
DechinPhy
发布2021-05-21 14:59:48
1.4K0
发布2021-05-21 14:59:48
举报
文章被收录于专栏:Dechin的专栏Dechin的专栏

适用场景

在存在固定长度的算法中可以可视化算法执行的过程,比如对一个固定长度的数组的遍历,就是一种适合使用进度条来进行可视化的场景。而一些条件循环,比如while循环,不一定适合使用进度条来对算法执行过程进行可视化,典型的一个场景就是自洽的优化算法。

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

调用的方法也非常的容易,只需要将我们常用的range函数替换成tqdm中自带的trange即可。

代码语言:javascript
复制
# test_tqdm.py
from tqdm import trange
import time
for i in trange(10):
    time.sleep(1)

以下是运行中间过程的一个显示场景

代码语言:javascript
复制
[dechin@dechin-manjaro progressbar]$ python3 test_tqdm.py 
 40%|████████████████                        | 4/10 [00:04<00:06,  1.00s/it]

通过多次引用trange,还可以实现多个进度条打印的功能,但是这里如果第一层的数量较多,会导致屏幕输出过于复杂:

代码语言:javascript
复制
# test_tqdm.py
from tqdm import trange
import time
for i in trange(10):
    for j in trange(10):
        time.sleep(0.1)

以下是执行过程中的输出:

代码语言:javascript
复制
[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中的trackrange函数进行封装:

代码语言:javascript
复制
# test_rich.py
from rich.progress import track
import time
for i in track(range(15)):
    time.sleep(1)

与简单的tqdm不同的是,rich支持种类众多的色彩,下面粘贴的执行过程显示,其实是带有彩色的:

代码语言:javascript
复制
[dechin@dechin-manjaro progressbar]$ python3 test_rich.py 
Working... ━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  27% 0:00:12

版权声明

本文首发链接为:https://cloud.tencent.com/developer/article/1827358

作者ID:DechinPhy

更多原著文章请参考:https://www.cnblogs.com/dechinphy/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 适用场景
  • tqdm进度条的使用方法与效果
  • rich进度条的使用方法与效果
  • 版权声明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档