【问题标题】:How to remove progressbar in tqdm once the iteration is complete迭代完成后如何删除 tqdm 中的进度条
【发布时间】:2020-09-14 19:21:29
【问题描述】:

我该如何存档?

from tqdm import tqdm    
for link in tqdm(links):
        try:
            #Do Some Stff
        except:
            pass  
print("Done:")  

结果:

100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 111.50it/s]
Done:   

100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 111.50it/s]
Done:  

预期结果(显示状态栏但在控制台后不打印)

Done:  
Done: 

【问题讨论】:

    标签: python console progress-bar statusbar tqdm


    【解决方案1】:

    tqdm实际上有几个参数,其中一个是leave,根据docs

    如果 [default: True],则在迭代终止时保留进度条的所有痕迹。如果没有,只有当位置为0时才会离开

    所以:

    >>> for _ in tqdm(range(2)):
    ...     time.sleep(1)
    ...
    100%|██████████████████████████████████████████████████████| 2/2 [00:02<00:00,  1.01s/it]
    

    而设置leave=False 产生:

    >>> for _ in tqdm(range(2), leave=False):
    ...     time.sleep(1)
    ...
    >>>
    

    【讨论】:

      【解决方案2】:

      你可以传递参数 disable=True。

      来源:https://pypi.org/project/tqdm/

      禁用:布尔值,可选
      是否禁用整个进度条 包装器 [默认值:False]。如果设置为 None,则在非 TTY 上禁用。

      from tqdm import tqdm    
      for link in tqdm(links,disable=True):
              try:
                  #Do Some Stff
              except:
                  pass  
      print("Done:")  
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-18
        • 2016-03-30
        • 2021-06-27
        相关资源
        最近更新 更多