代码之家  ›  专栏  ›  技术社区  ›  janluke

Python,tqdm:在进度条和使用tqdm.write打印的内容之间是否有打印内容的方法?

  •  0
  • janluke  · 技术社区  · 7 年前

    tqdm.write 在它们运行时在其上方打印日志消息。出于美观的考虑,我想用一条空行或类似重复的“=”之类的东西从进度条中直观地分离日志消息,如:

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

    有没有办法做到这一点?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Joe Halliwell    7 年前

    这有点像黑客,但以下可能是您的一个开始:

    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)