Python3でtqdmを使いプログレスバーを出す

処理に時間がかかって何も表示されないプログラムというのは、待っている間ちゃんと動いているのか不安になってしまいます。

そんなときにプログレスバーが出ると進捗状況が分かるので重宝します。Python3の場合、tqdmを使うと簡単にそれが実現できます。

tqdmの使い方

tqdmは次のようにインストールします。

python -m pip install tqdm

分かりやすい例として簡単なものを作ってみましょう。

tqdmの簡単な例
from tqdm import tqdm
import time

for j in tqdm(range(10)):
    time.sleep(0.1)

実行すると次のようなプログレスバーが表示されます。

 30%|████████████████████████▉                                                          | 3/10 [00:00<00:01,  6.85it/s]

tqdm()に渡すことができるのは順々に値を取り出せるもの(イテレータ)であれば何でも大丈夫です。あらかじめ取り出せる量が決まっていない(無限ループなど)場合でも使えますが、その場合はプログレスバーが表示されず実行回数と経過時間だけ表示されます。

個人的にはログファイルの処理をするときも重宝しています。次のようにログファイルを1行ずつ処理して、最後に結果を表示させるようなスクリプトであれば進捗状況が分かっていい感じになります。

tqdmの簡単な例2
from tqdm import tqdm

with open("fuga.log", mode="r", encoding="utf-8") as f:
    lines = f.readlines()
    for line in tqdm(lines):
        # 何かしらの処理
    # 結果表示

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)