あれもPython,これもPython

Pythonメモ※本サイトはアフィリエイトを利用しています

Pythonでプログレスバーを出したい(tqdmを使う)

Pythonスクリプトを作っている時に、
ループの進捗を確認したい時があります。

ループ毎にprint等で確認してもよいのですが、
長い処理を行う場合、ターミナルの表示がムダに感じます。

そこでプログレスバーを表示するtqdmモジュールを使用します。

使い方

pipを使っていれば、pipで入ります。

pip install tqdm

使い方はループのイテレータをラップするだけです。
importの仕方にだけ気を付けましょう。

from tqdm import tqdm
import time

for i in tqdm(range(100)):
    time.sleep(1)#ループしたい処理を書く

# 以下のプログレスバーが出る
# 75%|███████▍   | 75/100 [02:02<10:51,  1.28s/it]

enumerateと併用したい場合

Pythonではループカウンターとして、
これまたイテレータをラップするenumerateがあります。
両方を併用したい場合は、enumerateを一番外側にします。

for i,j in enumerate(tqdm(range(100))):
    #iがenumerate、jがrangeで変える値
    time.sleep(1)#ループしたい処理を書く

スクリプトの進捗状態を見たいときに
小技として覚えておくと便利です。
Pandasで分析の際に、重めの行列処理に利用する方法もあります↓

esu-ko.hatenablog.com