tqdm. Using multiple bars

≡放荡痞女 提交于 2019-12-19 02:06:17

问题


I would like to have two independent progress bars.

This is a minimal example where if I use two bars they are not updated properly. Instead new bars are created.

import time
from tqdm import *

pbar1 = tqdm(total=100)
pbar2 = tqdm(total=200)

for i in range(10):
    pbar1.update(10)
    pbar2.update(20)
    time.sleep(1)

When running the example. I get something like:

  0%|          | 0/100 [00:00<?, ?it/s]
 20%|██        | 20/100 [00:01<00:04, 19.97it/s]
 30%|███       | 30/100 [00:02<00:04, 15.36it/s]
 40%|████      | 40/100 [00:03<00:04, 13.23it/s]
 50%|█████     | 50/100 [00:04<00:04, 12.05it/s]
 60%|██████    | 60/100 [00:05<00:03, 11.35it/s]
 70%|███████   | 70/100 [00:06<00:02, 10.90it/s]
 80%|████████  | 80/100 [00:07<00:01, 10.61it/s]
 90%|█████████ | 90/100 [00:08<00:00, 10.42it/s]
100%|██████████| 100/100 [00:09<00:00, 10.28it/s]
100%|██████████| 200/200 [00:09<00:00, 20.57it/s]

As shown, updating does not work properly and adds new bars. Is it possible to have two independent bars that update properly?


回答1:


Try using the position parameter when initialising the bars:

pbar1 = tqdm(total=100, position=1)
pbar2 = tqdm(total=200, position=0)

From the tqdm GitHub page:

position : int, optional

Specify the line offset to print this bar (starting from 0) Automatic if unspecified. Useful to manage multiple bars at once (eg, from threads).



来源:https://stackoverflow.com/questions/45742888/tqdm-using-multiple-bars

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!