面白いPython庫tqdm


ループの進捗バーを表示できるライブラリは、プログラムがどこまで走ってどのくらいかかるか心配する必要はありません.
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)

2つのパラメータが便利で、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()も使えます.