【问题标题】:TQDM - Last progress bar update missing if multiple progress bars used in a single loopTQDM - 如果在单个循环中使用多个进度条,则缺少最后一个进度条更新
【发布时间】:2022-07-28 17:56:03
【问题描述】:

我有一个代码,其中两个使用 tqdm 运行的生成器被压缩并一起循环,这导致两个进度条被打印到标准输出。两者都更新跟踪进度,但只有第一个上升到 100%,而第二个错过了最终更新,即使外部循环的最后一次迭代成功完成。

让我向您展示一些玩具示例来说明这个问题。第一个带有 2 个压缩生成器:

print('Start.')

for a, b in zip(tqdm(range(100)), tqdm(range(100))):
    pass

print('End.')

产生输出:

Start.
100%|██████████████████████████████████████| 100/100 [00:00<00:00, 42247.22it/s]
 99%|██████████████████████████████████████▌| 99/100 [00:00<00:00, 68261.73it/s]
End.

带有 3 个压缩生成器的第二个:

print('Start.')

for a, b, c in zip(tqdm(range(100)), tqdm(range(100)), tqdm(range(100))):
    pass

print('End.')

产生输出:

Start.
100%|██████████████████████████████████████| 100/100 [00:00<00:00, 75288.17it/s]
 99%|█████████████████████████████████████▌| 99/100 [00:00<00:00, 112713.38it/s]
 99%|██████████████████████████████████████▌| 99/100 [00:00<00:00, 60733.67it/s]
End.

就像我在实践中所说的,最后一次迭代按预期完成,所以它只是一个装饰性的细节。我尝试在循环之后使用flush=True 放置和清空打印,但这没有帮助。如果有人对如何解决此问题并让所有进度条达到 100% 有任何建议,请分享。

【问题讨论】:

    标签: python stdout tqdm


    【解决方案1】:

    这有什么好运气吗?现在也想弄清楚这一点

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-30
      • 2015-09-08
      • 1970-01-01
      • 2021-02-19
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多