Python CLI でプログレス バーを作成する

Python CLI でプログレス バーを作成する

ファイルをダウンロードしたり、ゲームを開始したりするたびに、完了するまで自動的に更新される美しいアニメーションが表示されます。これは進行状況バーです。進行状況バーは、ファイルのダウンロード、アップロード、転送などのタスクの進行状況を視覚化するために使用されるグラフィック要素です。





プログレス バーには、確定と不確定の 2 種類があります。確定進行状況バーは、時間の経過に伴うタスクの進行状況を追跡します。不確定なプログレス バーは、ループ アニメーションで無限に実行されます。





今日のメイク動画

では、Python CLI プログラムで確定進行状況バーを作成するにはどうすればよいでしょうか?





tqdm モジュールとは

tqdm は、Casper da Costa-Luis と他の 10 人のメンバーによって主に保守されているモジュールです。 tqdm は、「進歩」を意味するアラビア語の taqaddum に由来し、スペイン語で「とても愛している」 (te quiero demasiado) の略語です。

tqdm モジュールを使用すると、ターミナルで魅力的で機能的なプログレス バーを作成できます。 tqdm モジュールをインストールするには、ターミナルを開いて次を実行します。



pip install tqdm

時間モジュールとは?

Python の標準ユーティリティ モジュールには、 時間モジュール デフォルトなので、インストールする必要はありません。 time モジュールで提供されるスリープ機能を使用して、バーの進行状況を視覚化するのに役立つ遅延をアプリケーションに追加できます。

time モジュールを使用して、日付と時刻を取得し、タスクをスケジュールし、次のような便利なアプリケーションを構築できます。 シンプルな目覚まし時計 、またはストップウォッチ。





プログレスバーを追加してカスタマイズする方法

デフォルトの進行状況バーは使いやすく、いくつかのオプションでカスタマイズできます。

1.シンプルなプログレスバー

tqdm モジュールから tqdm クラスをインポートし、time モジュールから sleep 関数をインポートすることで、単純なプログレス バーを作成できます。 for ループを使用して、目的の範囲で tqdm を繰り返します。





範囲は、最大 9e9 (90 億) です。秒数を sleep 関数に渡して遅延を追加し、プログレス バーの動作を視覚化して確認できるようにします。

次のような単純な進行状況バーを実装できます。

from tqdm import tqdm 
from time import sleep

for i in tqdm(range(100)):
sleep(.1)

tqdm をインポートする代わりに、tqdm モジュールから trange をインポートして、tqdm と range を結合し、パラメーターを直接渡すことができます。

from tqdm import trange 
from time import sleep

for i in trange(100):
sleep(.1)

単純なプログレス バーを作成すると、次のような出力が得られます。

  単純な進行状況バー

この出力には、進行状況のグラフィカル バージョンとテキスト バージョン、およびタイミング統計が含まれます。

2. 説明テキスト付きの進行状況バー

プログレス バーに説明ラベルを追加して、その目的を説明できます。表示するテキストを二重引用符で囲んで渡します 説明 パラメータ:

for i in tqdm(range(0, 10), desc ="Progress: "): 
sleep(.4)

進行状況バーとともに説明テキストを追加すると、次のような出力が得られます。

  テキスト付きの進行状況バー

3.幅がカスタマイズされたプログレスバー

デフォルトでは、プログレス バーの幅は出力ウィンドウのサイズに合わせて動的に設定されます。の助けを借りて、好みに応じてカスタマイズできます。 ncols パラメータ。

電話でクリップボードをクリアする方法

次のように、カスタマイズされた幅の進行状況バーを実装できます。

for i in tqdm(range(0, 10), ncols = 100, desc ="Progress: "): 
sleep(.1)

プログレス バーの幅を拡大すると、次のような出力が得られます。

  説明と ncols を含むプログレス バー

4.色を使用したプログレスバー

color パラメーターを使用して、進行状況バーの色をカスタマイズできます。これは、次の 2 つの方法で行うことができます。

  1. 色名: 緑、黒、シアンなどの色の名前を使用できます。
  2. 16 進コード: 16進コードはフォーマットです コンピューターが色を保存する場所。ハッシュ (#) の後に 16 進数の 6 文字 (0-9、a-f) を続けて、16 進数の色を表すことができます。 16 進コード #000000 は黒を表し、#ffffff は白を表します。これらの数値の強度を変えることで、さまざまな色合いの色が得られます。を使用できます。 Google のカラー ピッカー ツール 16 進コードの色を選択して貼り付けます。

次のように、カスタマイズされた色のプログレス バーを実装できます。

for i in tqdm(range(0, 100), colour="#00ffff", desc ="Progress: "): 
sleep(.1)

プログレスバーの色を変更したときに得られる出力:

  色付きの進行状況バー

5.最小間隔のプログレスバー

デフォルト設定の代わりに最小間隔で更新される進行状況バーを作成できます。 2 つの更新の間隔として機能する 1.5 や 2 などの数値を渡すことができます。最小間隔のデフォルト値は 0.1 です。

次のように最小間隔で進行状況バーを実装できます。

for i in tqdm(range(0, 100), mininterval = 2, desc ="Progress: "): 
sleep(.1)

プログレスバーに最小間隔を指定して得られる出力:

  最小間隔の進行状況バー

6. ASCII 文字を使用したプログレス バー

画面に表示される通常のバーの代わりに、ASCII 文字を使用してプログレス バーを作成できます。 ASCII 文字を使用するには、 アスキー パラメータを目的の形式に変更します。

次のようなものを使用する場合 12345* 、範囲の各列は、1 からアスタリスクまで順番に繰り返されます。クールでカスタマイズ可能ですが、実際のアプリケーションで使用する場合は、ユーザーフレンドリーであることを確認してください。

Windows10用の最高のフォトビューア

次のように ASCII 文字を使用してプログレス バーを実装できます。

for i in tqdm(range(0, 100), ascii ="12345*"): 
sleep(.1)

プログレス バーで ASCII 文字を使用して取得した出力は、次のようになります。

  ASCII 文字のプログレス バー

7.指定された開始点を使用したプログレスバー

プログレス バーをゼロから開始する代わりに、プログレス バーの特定の開始点を設定できます。 50 のような開始値を イニシャル パラメータ。

次のように、特定の開始点を使用して進行状況バーを実装できます。

for i in tqdm(range(0, 100), initial = 50, desc ="Progress: "): 
sleep(.1)

指定した時点で進行状況バーを開始したときに得られる出力:

  初期パラメーター付きの進行状況バー

8.反復回数を指定したプログレスバー

特定の反復回数を実行するプログレス バーを作成できます。 50000 回のうち 500 回の反復を実行する場合は、範囲として 500 を渡し、反復の合計回数として 50000 を 合計 パラメータ。

次のように、特定の反復回数を使用して進行状況バーを実装できます。

for i in tqdm(range(0, 500), total = 50000, desc ="Progress: "): 
sleep(.1)

指定された反復回数で進行状況バーを使用して取得した出力:

  指定された反復回数の進行状況バー

プログレスバーの応用

メディア プレーヤーの再生やオンライン フォームでの手順の表示など、さまざまな状況でプログレス バーが表示されます。

プログレス バーは美的に見えますが、ユーザーが Web サイトを離れてしまう場合に備えて、ユーザーにフィードバックを提供するという重要な役割を果たします。