有没有办法在 Python 中创建双进度条? 我想在彼此内部运行两个循环。对于每个循环,我想要一个进度条。我的程序看起来像:
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
中间某处的输出应该类似于
50%|############################ |ETA: 0:00:02
80%|################################################## |ETA: 0:00:04
已经存在的真酷progressbar模块似乎不支持。
最佳答案
使用 nested progress bars feature of tqdm ,一个开销极低、可定制的进度条库:
$ pip install -U tqdm
然后:
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), leave=False):
# do something, e.g. sleep
time.sleep(0.01)
(leave=False
是可选的 - 需要在完成时丢弃嵌套条。)
您也可以使用 from tqdm import trange
然后将 tqdm(range(...))
替换为 trange(...)
。你也可以得到working in a notebook .
或者,如果您只希望一个条形图监控所有内容,您可以使用 tqdm
的 itertools.product
版本:
from tqdm.contrib import itertools
import time
for i1, i2 in itertools.product(range(5), range(300)):
# do something, e.g. sleep
time.sleep(0.01)
关于python - Python中的双进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23113494/