Как удалить индикатор выполнения в tqdm после завершения итерации - PullRequest
1 голос
/ 27 мая 2020

Как я могу заархивировать это?

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: 

1 Ответ

1 голос
/ 27 мая 2020

tqdm на самом деле принимает несколько аргументов, один из них leave, что согласно docs :

If [по умолчанию: True], сохраняет все следы индикатора выполнения по окончании итерации. Если None, уйдет только если позиция 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)
...
>>>
...