インストーラ・ファイルダウンローダなど、何かしら反復処理の進捗状況を可視化したいときに、プログレスバーを手軽に実装できたら便利です。
僕も反復処理における進捗状況をもう少しマシな感じに表示したいなぁと思っていたところ、
tqdmというライブラリがあり、実際に使ってみたところとてもシンプルに実装を行うことができました。
使い方
import time
import tqdm
# 反復処理と同時にプログレスバーを標準出力
for _ in tqdm.tqdm(xrange(10)):
time.sleep(1)
使い方は、tqdm.tqdm
関数にiteratorを渡すだけです。
返戻されたiteratorオブジェクトを反復させるたびに、標準出力に進捗状況が表示されます。
結果
0%| | 0/10 [00:00<?, ?it/s]
10%|█ | 1/10 [00:10<01:30, 10.00s/it]
20%|██ | 2/10 [00:20<01:20, 10.00s/it]
30%|███ | 3/10 [00:30<01:10, 10.00s/it]
40%|████ | 4/10 [00:40<01:00, 10.00s/it]
50%|█████ | 5/10 [00:50<00:50, 10.00s/it]
60%|██████ | 6/10 [01:00<00:40, 10.00s/it]
70%|███████ | 7/10 [01:10<00:30, 10.00s/it]
80%|████████ | 8/10 [01:20<00:20, 10.00s/it]
90%|█████████ | 9/10 [01:30<00:10, 10.00s/it]
100%|██████████| 10/10 [01:40<00:00, 10.00s/it]
これでプログレスバー実装完了です。非常に簡単ですね。
なお、上の結果では一巡ごとの進捗表示を全て表示していますが、実際は次の表示が前の表示を上書きする形で表示されます。