在tqdm进度条下方打印文本

11

我希望在tqdm进度条下方显示文本,以环形缓冲区的形式呈现。这些文本不一定会随着进度条的每次更新而更新。使用tqdm的.write()函数时,文本只会打印在进度条右侧,这是不应该的。我不确定tqdm能否实现这个功能。

我希望呈现的效果是这样的:

70%|███████   | 7/10 [00:00<00:00,  9.65it/s]
Message 2 ....
Message 3 ....
Message 4 ....
Message 5 ....
当新消息被打印时,消息2会被删除,而其他消息会在堆栈中向上移动。我不一定非要使用tqdm库,但目前我一直在用它。

你找到它的答案了吗? - Hammad
1个回答

2
您可以使用第二个进度条,仅使用描述。
import random
import time
from tqdm import tqdm

n_iter = 1000

with tqdm(total=n_iter, position=1, bar_format='{desc}', desc='No high number so far.') as desc:
    for i in tqdm(range(n_iter), total=n_iter, position=0):
        x = random.random()
        if x > 0.95:
            desc.set_description('High random number: %f' % x)
        time.sleep(0.1)

你需要展示你的代码,以便我们找出问题所在。 - user5386938

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接