※このページではアフィリエイト広告を利用しています

【Python応用】tqdmを用いたプログレスバーでの進捗状況の可視化

Python

ここでは、tqdmを用いたプログレスバーでの進捗状況の可視化について解説しています。

この記事の対象

  • 実行の進捗を可視化したい方
  • プログレスバーについて知りたい方
  • pythonでプログレスバーを使用したい方
スポンサーリンク
スポンサーリンク

Tqdmのインストール

tqdm」は外部ライブラリです。準備として、以下をインストールします。

$ pip install tqdm

目的

大量のデータを操作する際、どのくらいの進捗状況なのか知りたいときに使用しました。

以下のプログラムは、pandasで複数のcsvファイルを読み込んだ時に可視化したものになります。

プログラム

デフォルトのtqdm

from tqdm import tqdm
import time
import glob
import pandas as pd
#1---フォルダ内のCSVファイルの一覧を取得
files = sorted(glob.glob('*.csv'))
#2---ファイル数を取得
file_number = len(files)
#3---CSVファイルの中身を読み出して、リスト形式にまとめる
csv_list = []
for file in tqdm(files):
    csv_list.append(pd.read_csv(file,encoding='shift_jis',skiprows=[1]))
    time.sleep(1)
#100%|█████████████████████████████████████████████████████| 11/11 [00:11<00:00,  1.03s/it]

上記のプログラムで、進捗状況を知りたかったのはデータの読み込みの進捗状況でした。

よって、ここではfor構文で使用しました。

プログレスバーの説明設定 ⇒ desc

from tqdm import tqdm
import time

for i in tqdm(range(100), desc="Going"):
    time.sleep(1)

プログレスバーに名前を設定して説明する事も可能です。使用する際は引数に「desc」を設定するだけです。

結果

#Going:  90%|██████████████████████████████████████████████████████████████████▌       | 90/100 [01:31<00:10,  1.01s/it]

単位表示 ⇒ unit

from tqdm import tqdm
import time

for i in tqdm(range(100), desc="Going",unit='T'):
    time.sleep(1)

「unit」を使用すると進捗バーの右側に値の単位を表示できます。

結果

Going: 100%|█████████████████████████████████████████████████████████| 100/100 [01:46<00:00,  1.07s/T]

単位スケール ⇒ unit_scale

from tqdm import tqdm
import time

for i in tqdm(range(100), desc="Going",unit_scale=True):
    time.sleep(0.1)

「unit_scale」を True に設定すると、進捗バーの単位を自動的にスケーリングして表示されます。

結果

Going: 100%|█████████████████████████████████████████████████████████| 100/100 [00:10<00:00, 9.80it/s]

動的に変化 ⇒ dynamic_ncols

from tqdm import tqdm
import time

for i in tqdm(range(100), desc="Going",dynamic_ncols=True):
    time.sleep(0.1)

「dynamic_ncols」を使用すると、進捗バーの列数が動的に変化します。これにより、ターミナルウィンドウの幅に合わせてバーの表示が調整できます。

色の指定 ⇒ colour

from tqdm import tqdm
import time

for i in tqdm(range(100), desc="Going",colour="red"):
    time.sleep(0.1)

「colour」を使用して、進捗バーの色をカスタマイズできます。colourオプションには ANSI カラーコードを指定します。

完了後に残す ⇒ leave

from tqdm import tqdm
import time

for i in tqdm(range(100), desc="Going",leave=True):
    time.sleep(0.1)

「leave」をTrueに設定すると、進捗バーが処理完了後も表示されたままになります。これにより、処理終了後の情報が残ります。Falseで完了後は残りません。

最小更新間隔 ⇒ mininterval

from tqdm import tqdm
import time

for i in tqdm(range(100), desc="Going",mininterval=3.0):
    time.sleep(0.1)

「mininterval」を使用して、進捗バーの最小更新間隔を設定できます。これにより、更新頻度を制御できます。

まとめ

プログレスバーを用いるときはtqdmを使用することで可視化できます。

大量のデータを操作している際、ほんとに操作できているのか気になるときにプログレスバーを用いるのも有効です。

タイトルとURLをコピーしました