python

【python】プログレスバーを表示する【→プログラム初心者向け】

11月 6, 2019

how to display progress bar on python
プログラム女子
処理の時間が長い時に「今は処理中」って知らせる方法はあるかな。。
プログレスバーを表示すればユーザーに「今処理中」を知らせることができるよ。今回はプログレスバーを表示する方法を説明するね。
Tommy

この記事で分かること

  • プログレスバーを表示する必要がある場合が分かる
  • プログレスバーを表示するプログラミング方法が分かる

Pythonでプログレスバーを表示する概要

summary of displaying progress bar

長い時間がかかるような処理では、どの程度まで処理が進んだかわからないことがあります。もし、何かの原因で処理が止まっていると、時間がかかっているだけなのか、途中で処理が止まっているのかを把握することは難しくなります。

そこで、プログレスバーを端末に表示して処理の進捗を確認することができれば、とても便利です。プログレスバーで進捗状況をわかるようにする方法を説明します。

Pythonでプログレスバーを表示する前提の環境

environment of displaying progress bar

プログレスバーを使う前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

オススメ
how to check version in python
【python】バージョン確認の方法【→プログラミング初心者向け】

続きを見る

また、レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

オススメ
how to programming on rental server
レンタルサーバでプログラミングする方法【→ブログのサーバでできる!】

続きを見る

Pythonでプログレスバーを表示するサンプルプログラム

sample program of displaying progress bar

ここではプログレスバーの表示をfor文の例を参考に示し、どのようにプログレスバーを表示するのか、プログレスバー表示に関するオプションをサンプルプログラムで説明します。

ライブラリのインポート

今回のプログレスバー表示には、「progressbar」というライブラリを使用します。なので、「progressbar」というライブラリをインポートしています。

詳細な進捗状況を表示する為に、「progressbar」のライブラリの中の「Percentage」、「Bar」、 「Counter」、「DataSize」というモジュール(サブライブラリ)を使用しました。また、For文で進捗状況の例を示すのですが、少し時間をかせぐために「time」のライブラリを使用しました。

from progressbar import progressbar
from progressbar import Percentage, Bar, Counter, DataSize

import time

  1. ライブラリ「progressbar」からモジュール「progressbaar」をインポートする。
  2. ライブラリ「progressbar」からモジュール「Percentage」「Bar」「Counter」「DataSize」をインポートする。
  3. ライブラリ「time」をインポートする

プログレスバーを表示するプログラム

次に、プログレスバーを表示するプログラムの流れは下記のようになります。

  1. 0から99までの100個の整数の要素が格納されたリスト変数「mlist」を定義します。
  2. 変数「widgets」にプログレスバーをどのように表示するかというウィジェットを設定します。
    ※プログレスバーの設定の仕方については次の章で説明します。
  3. 関数「progressbar」の引数に「mlist」と「widgets」を取りfor文を構成します。
    ※プログレスバーで進捗を確認したい処理はfor文の中に書きます
  4. プログレスバーの進捗をわかりやすくする為に、for文の間で0.1秒スリープします。
if __name__ == '__main__':

	mlist = list(range(100))

	widgets=['Test Progress:',Percentage(),'(',Counter(),' of ',str(len(mlist))+')',Bar(),]

	for i in progressbar(mlist,widgets=widgets):
		time.sleep(0.1)

  1. 変数「mlist」を0から100までの整数で初期化する。
  2. 変数「widggets」にウィジェットの設定を表すリストで初期化する。(詳細は次の章のリンクを参照)
  3. 関数「progressbar」の引数に「mlist」と「widgets」を指定し、以下の処理を繰り返す。
    1. 0.1秒間スリープする。

プログレスバーのウィジェット

ウィジェット(widgets)では、色々な進捗状況の表示形式を指定することができます。ウィジェットの詳細については、下記のサイトを参照ください。

Welcome to Progress Bar’s documentation! — Progress Bar 3.46.1 documentation

-python
-

© 2021 Tommy's blog Powered by AFFINGER5