Is there a way to create a double progress bar in Python? I want to run two loops inside each other. For each loop I want to have a progress bar. My program looks like:
import time
for i1 in range(5):
for i2 in range(300):
# do something, e.g. sleep
time.sleep(0.01)
# update upper progress bar
# update lower progress bar
The output somewhere in the middle should look something like
50%|############################ |ETA: 0:00:02
80%|################################################## |ETA: 0:00:04
The already existing really cool progressbar module doesn't seem to support that.
Use the nested progress bars feature of tqdm, an extremely low overhead, very customisable progress bar library:
$ pip install -U tqdm
Then:
from tqdm import tqdm
# from tqdm.auto import tqdm # notebook compatible
import time
for i1 in tqdm(range(5)):
for i2 in tqdm(range(300)):
# do something, e.g. sleep
time.sleep(0.01)
You can also use from tqdm import trange
and then replace tqdm(range(...))
with trange(...)
. You can also get it working in a notebook.