首页 > 解决方案 > Python,tqdm:有没有办法在进度条和使用 tqdm.write 打印的内容之间打印一些内容?

问题描述

我有一组进度条,我用来tqdm.write在它们运行时在它们上方打印日志消息。出于美学原因,我想用空行或类似重复的“=”之类的东西在视觉上将日志消息与进度条分开,例如:

Log message 1                                                                                  
Log message 2                                                                              
Log message 3 
==================================================                                                                                                
Progress 1: 50%|█████████████████              |
Progress 2: 50%|█████████████████              |

有没有办法做到这一点?

标签: pythonconsoletqdm

解决方案


这有点小技巧,但以下内容可能是您的开始:

from tqdm import tqdm
from tqdm._utils import _term_move_up
import time

pbar = tqdm(range(5))
border = "="*50
clear_border = _term_move_up() + "\r" + " "*len(border) + "\r"
for i in pbar:
    pbar.write(clear_border + "Message %d" % i)
    pbar.write(border)
    pbar.update()
    time.sleep(0.1)

推荐阅读