迭代完成后如何删除 tqdm 中的进度条

How to remove progressbar in tqdm once the iteration is complete

如何存档?

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: 

tqdm actually takes several arguments, one of them is leave, which according to the docs:

If [default: True], keeps all traces of the progressbar upon termination of iteration. If None, will leave only if position is 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)
...
>>>

可以传递参数disable=True。

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

disable: bool, optional
Whether to disable the entire progress bar wrapper [default: False]. If set to None, disable on non-TTY.

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