💯
Pythonで進捗可視化のためにtqdmを使う
tqdm とは
Pythonで進捗をプログレスバーとして可視化したい時に使います。
from tqdm import tqdm
import time
for i in tqdm(range(100)):
time.sleep(0.01)
導入
pip install tqdm
使い方
for hoge in foo
を for hoge in tqdm(foo)
に変えるだけです。
最後に消したい
leave
にFalse
を指定することで、100%になったらプログレスバーを消すことが可能です。
from tqdm import tqdm
import time
for i in tqdm(range(100), leave=False):
time.sleep(0.01)
入れ子で使いたい
特に工夫をしなくても使えます。
from tqdm import tqdm
import time
for i in tqdm(range(3)):
for n in tqdm(range(50), leave=False):
time.sleep(0.01)
foo.items()
でも使いたい
辞書 for key, value in tqdm(foo.items())
のように使うことも可能です。
from tqdm import tqdm
import time
foo = {
"banana": 1,
"fish": 1,
"apple": 5,
"orange": 3,
"strawberry": 3,
}
hoge = ""
for key, value in tqdm(foo.items()):
hoge += f"{key}が{value}個あります。\n"
time.sleep(0.4)
print(hoge)
説明を入れたい
desc
に指定することが出来ます。
from tqdm import tqdm
import time
for i in tqdm(range(100), desc="hoge"):
time.sleep(0.01)
内包表記で使いたい
内包表記でも使えます。
from tqdm import tqdm
hoge = [i for i in tqdm(range(10000000))]
その他
from tqdm.notebook import tqdm
で Jupyter Lab でも表示することができるそうです(ただし拡張機能などが必要っぽい)。
その他の使用例や引数などは、tqdm 公式ドキュメントにたくさん書かれています。
データセットの処理であとどのくらい時間かかるんだろう、という時に便利でした。もっと前から知りたかった!
追記(2021/07/17 10:44)
ymdさんよりコメントで以下を教えていただきました。ありがとうございます!
from tqdm.auto import tqdm
を使うとtqdm.notebookかtqdm.tqdmを自動で判断して使えるみたいです。
[tqdm.auto](https://tqdm.github.io/docs/shortcuts/#tqdmauto)
を Google Colaboratory で使ってみました。
tqdm.auto
の方はノートブック用の表示になっていますね。また、 Google Colaboratory には既に tqdm が入っているようです。
参考
Discussion
from tqdm.auto import tqdm
を使うとtqdm.notebookかtqdm.tqdmを自動で判断して使えるみたいです。つまりjupyterでもterminalでもどっちでも動く
ymdさん。
おぉ~。初めて知りました。ありがとうございます!
記事に追記します!!