好玩的Python庫tqdm (轉載)
阿新 • • 發佈:2019-01-01
原文地址:
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 好用。