Pythonでプログレス(進捗)バーを表示してみます。
プログレス(進捗)バーとは、長時間かかるタスクの進捗状況がどの程度完了したのかを視覚的・直感的に表示するものです。
今回プログレス(進捗)バーを表示させるために、tqdmモジュールを使用します。tqdmモジュールは、Pythonの標準ライブラリではありません。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■tqdmモジュールのインストール
tqdmをインストールを行いますが、今回はpipを経由してインストールを行うので、まずWindowsのコマンドプロンプトを起動します。
pip install tqdm
起動後、上記のコマンドを入力し、Enterキーを押します。
なお、今回は、pythonランチャーを使用しており、Python Version 3.8.5にインストールを行うために、pipを使う場合にはコマンドでの切り替えを行います。
py -3.8 -m pip install tqdm
切り替えるために、上記のコマンドを入力し、Enterキーを押します。Enterキーを押すと、インストールが開始され、「Successfully installed」と表示されれば、正常にtqdmのインストールは完了となります。
■プログレス(進捗)バーを表示する
tqdmモジュールのインストールが完了しましたので、プログレス(進捗)バーを表示させるスクリプトを書いていきます。
■コード
from tqdm import tqdm from time import sleep for i in tqdm(range(300)): sleep(0.01)
tqdmモジュールと、Pythonの標準モジュールであるsleepモジュールを呼び出して、tqdm()の括弧内に、今回は「300」という数字を記述し、この指定された数字まで、for文による繰り返し、sleep()で0.01秒待機させながら処理をさせていきます。
■実行
今回のスクリプトを「progress_bar.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、合計300回の繰り返し処理が94.56回/秒の速度で実行されたことがプログレス(進捗)バーで表示できることを確認できました。
■プログレス(進捗)バーの前にテキストを表示する
from tqdm import tqdm from time import sleep for i in tqdm(range(300),desc="test"): sleep(0.01)
次に、プログレス(進捗)バーの前にテキストを表示させるためには、「desc=」と記述し、クォーテーション内に表示させたいテキストを記述します。
今回のスクリプトを変更し、実行してみると、テキストを表示させることができました。日本語のテキストでも表示されます。
■プログレス(進捗)バーを表示させない場合
from tqdm import tqdm from time import sleep for i in tqdm(range(300),disable=True): sleep(0.01)
次にプログレス(進捗)バーを表示させなくすることもできます。このような場合は、「disable=」と記述し、その後に「True」と記述します。
今回のスクリプトをスクリプトを変更し、実行してみると、プログレス(進捗)バーが表示しなくなることを確認できました。なお、「disable=」と記述し、その後に「False」と記述すると、プログレス(進捗)バーが表示できます。
■プログレス(進捗)バーで表示する列の数を指定する
from tqdm import tqdm from time import sleep for i in tqdm(range(300),ncols=10): sleep(0.01)
次に、プログレス(進捗)バーで表示する列の数を指定することができます。指定する場合は「ncols=」と記述し、その後に表示する列の数を指定します。今回は10と指定します。
今回のスクリプトを変更し、実行してみると、表示する列の数が変更されて表示することを確認できました。
■プログレス(進捗)バーで表示する必要な値を指定する
from tqdm import tqdm from time import sleep for i in tqdm(range(300),ascii="**"): sleep(0.01)
次に、プログレス(進捗)バーで進捗状況がどの程度完了したのかを視覚に表示するために、記号、マークなどを指定することができます。指定する場合は、「ascii=」と記述し、クォーテーション内に表示させる値を指定します。今回は「**」米印を指定します。
今回のスクリプトを変更し、実行してみると、進捗状況の表示が変更されたことを確認できました。
コメント