1. 程式人生 > >好玩的Python庫tqdm (轉載)

好玩的Python庫tqdm (轉載)

原文地址:

https://blog.csdn.net/zejianli/article/details/77915751

 

 

 

 

可以顯示迴圈的進度條的庫,再也不用擔心不知道程式跑到哪裡還要跑多久了

tqdm()可以直接包裹iterable的物件

from tqdm import tqdm,trange
from time import sleep
text = ""
for char in tqdm(["a", "b", "c", "d"]):
    text = text + char
    sleep(0.1)

 

 

trange(i)相當於tqdm(range(i))

for i in trange(100):
    sleep(0.01)

 

 

 

可以在迴圈外面預先定義tqdm的物件

pbar = tqdm(["a", "b", "c", "d"])
for char in pbar:
    pbar.set_description("Processing %s" % char)

 

 

 

 

 

 

有兩個引數比較有用,desc(str)和leave(bool)
desc可以指定這個迴圈的的資訊,以便區分。上面的set_description(str)和這個應該是一樣的。
leave則表示進度條跑完了之後是否繼續保留

for i in tqdm(range(10), desc='1st loop'):
    for j in trange(100, desc='2nd loop', leave=False):
        sleep(0.01)

 

 

 

 

 

如果要在Jupyter Notebook上面使用,那麼要把tqdm換成tqdm_notebook,trange換成tnrange

 
 
from tqdm import tnrange, tqdm_notebook
from time import sleep


for i in tqdm_notebook(range(10), desc='1st loop'):
    for j in tnrange(100, desc='2nd loop', leave=False): sleep(0.01)

 

 

如果在終端執行時需要在迴圈內列印點什麼,就不能直接用print()了,而要用tqdm.write(str)

在Jupyter Notebook裡面沒有這個問題,還能用print()。

 

 

 

 

 

=======================================================

另注(非原文內容):

desc(str) 指定迴圈資訊是比較好用的,如:

from tqdm import trange, tqdm
from time import sleep


for i in tqdm(range(100), desc='1st loop'):
        sleep(1)

 

 

 

實際操作中發現    desc(str)   比    set_description   好用。