python - Python中的双进度条

标签 python progress-bar

有没有办法在 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 .

或者,如果您只希望一个条形图监控所有内容,您可以使用 tqdmitertools.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/

相关文章:

python - 在 Python 中使用正则表达式从 JSON 响应中提取数据

python - 使用 setup.py 包含数据文件

android - 分段进度条android

java - 水平进度条添加圆形指示器

python - 如何生成用户定义的小数位 "e"的近似值

python - python 条件变量忙等待吗?

python - 在 y 轴上绘制特定值而不是增加数据帧的比例

javascript - 增加我的密码长度进度条

android - 在屏幕中心显示进度条

iOS - 带圆角的饼图进度条