Python:用tqdm模块绘制进度条

在计算密集型迭代计算中,我们常常需要知道当前的迭代轮次,最传统的方法就是打印当前迭代计数器的轮数。那有没有更好的方法呢?我们可以使用tqdm模块(非py内置,需要用conda/pip单独安装)来在控制台绘制进度条,这样更加直观。

最简单的一种方法是直接做为迭代器使用:

from tqdm import tqdmfrom time import sleepn_rounds = 10for i in tqdm(range(n_rounds)):    sleep(1)

可以看到,循环每迭代一次,进度条就会+10%(我们这里按enter键换行显示):

 0%|                                                     河南红色教育培训 www.bjganxun.cn                | 0/10 [00:00<?, ?it/s] 10%|█████▉                                                     | 1/10 [00:01<00:09,  1.00s/it] 20%|███████████▊                                               | 2/10 [00:02<00:08,  1.00s/it] 30%|█████████████████▋                                         | 3/10 [00:03<00:07,  1.00s/it] 40%|███████████████████████▌                                   | 4/10 [00:04<00:06,  1.00s/it] 50%|█████████████████████████████▌                             | 5/10 [00:05<00:05,  1.00s/it] 60%|███████████████████████████████████▍                       | 6/10 [00:06<00:04,  1.00s/it] 70%|█████████████████████████████████████████▎                 | 7/10 [00:07<00:03,  1.00s/it] 80%|███████████████████████████████████████████████▏           | 8/10 [00:08<00:02,  1.00s/it] 90%|█████████████████████████████████████████████████████      | 9/10 [00:09<00:01,  1.00s/it]100%|██████████████████████████████████████████████████████████| 10/10 [00:10<00:00,  1.00s/it]

还有一种稍复杂的方法,就是自定义进度条计数器的更新。比如下面我们规定迭代到一个奇数则进度条计数器+1,迭代到5个奇数进度条计数器满。

from tqdm import tqdmfrom time import sleepn_rounds = 10n_odd = 5pbar = tqdm(total=n_odd)for i in range(n_rounds):    sleep(1)    if i % 2 == 1:        pbar.update(1)

可以看到,每迭代到一个奇数,进度条就会+20%(我们这里按enter键换行显示)。

 0%|                                                                    | 0/5 [00:00<?, ?it/s] 20%|████████████                                                | 1/5 [00:02<00:08,  2.01s/it] 40%|████████████████████████                                    | 2/5 [00:04<00:06,  2.01s/it] 60%|████████████████████████████████████                        | 3/5 [00:06<00:04,  2.01s/it] 80%|████████████████████████████████████████████████            | 4/5 [00:08<00:02,  2.00s/it]100%|████████████████████████████████████████████████████████████| 5/5 [00:10<00:00,  2.16s/it]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值