【Python】tqdmにより処理の進捗状況を表示する

【Python】tqdmにより処理の進捗状況を表示する プログラミング

Pythonでこんなことができるの知ってましたか?

tqdmを使えば、簡単にできてしまいます。

本記事の内容

  • tqdmとは?
  • tqdmのシステム要件
  • tqdmのインストール
  • tqdmの動作確認

それでは、上記に沿って解説していきます。

tqdmとは?

tqdmは、アラビア語(taqadum)で「進歩」を意味します。
また、「te quiero demasiado」(スペイン語)の略語でもあるようです。
ちなみに、「te quiero demasiado」は「あなたをとても愛している」という意味。

tqdmライブラリでは、一体何ができるのでしょうか?
冒頭のGIFアニメを見れば、もう語る必要はありませんね。

いわゆるプログレスバーというヤツです。

では、どのようなケースで利用するのでしょうか?
進捗状況を確認したければ、どんなケースでも利用してもいいと思います。

今なら、機械学習で利用したいという需要があるでしょう。
機械学習では扱うデータ量が半端ありませんからね。

その分だけ、処理時間も長くなります。
そうなると、処理の進捗状況を把握したくなるは当然です。

機械学習で大量のデータを扱うケースは、以下の記事で説明しています。

また、個人的にはスクレイピングで利用します。
スクレイピングも時間のかかるケースが存在します。

スクレイピングを数日単位で行うことは、しばしばあり得ます。
その際に、処理の進捗状況が把握できれば助かります。

「スクレイピングとは?」と言う方は、以下の記事をご覧ください。
あと、当ブログを「スクレイピング」で検索すれば、楽しいことがたくさん出てきます。

tqdmのシステム要件

tqdmの最新バージョンは、4.55.1となります。
この最新バージョンは、2021年1月2日にリリースされています。

tqdmは、かなり頻繁にアップデートが実施されています。
そのため、使う側からするとあまり細かいことを気にする必要はないでしょう。
それだけメンテナンスされているということなので。

そのことは、サポートしているPythonのバージョンからもわかります。

  • Python 2.7
  • Python 3.5
  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9

実際のところ、Python 3.5以降であれば大抵の場合が大丈夫です。
しかし、公式にサポートを記載しているところは意外とありません。
2021年1月時点では、「Python 3.9」をサポート対応に記載しているのを初めて見たかもしれません。。。

利用する側からすると、公式にサポート対応が記載されていると安心できます。
その意味では、tqdmはかなり優秀なプロジェクトです。

以上より、システム要件は他のライブラリのように気にする必要はありません。
では、tqdmのインストールに進みましょう。

tqdmのインストール

最初に、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        20.3.3
setuptools 51.1.2

次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip

いざ、 tqdmのインストールです。
tqdmのインストールは、以下のコマンドで行います。

pip install tqdm

インストールは一瞬で完了です。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package    Version
---------- -------
pip        20.3.3
setuptools 51.1.2
tqdm       4.55.1

tqdmだけがインストールされたパッケージです。
シンプルで素晴らしいですね。

以上、tqdmのインストールでした。
最後に、tqdmの動作確認を行いましょう。

tqdmの動作確認

公式のサンプルを参考にしています。

from tqdm import trange
from time import sleep

for i in trange(500):
    sleep(0.01)

これだけでプログレスバーを表示できます。
実行した結果は、以下。

ちゃんと動作していますね。
以上、tqdmの動作確認でした。

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