PythonのCUIアプリでrichを使って進捗状況表示

Pythonでターミナル(コマンドライン)から利用するCUIのアプリケーションを作る際、処理の進捗状況を表示するときに少しリッチにしたい。

richというライブラリを使うと簡単にできました。このライブラリは、PythonCUIアプリを作る際にリッチなUIを簡単に作れる機能を提供してくれます。

GitHub - Textualize/rich: Rich is a Python library for rich text and beautiful formatting in the terminal.

インストール

richはpipでインストールできます。

(venv)$ pip install rich

進捗状況表示

ドキュメントに進捗状況表示の実装方法についてページがあります。

Progress Display — Rich 13.6.0 documentation

ドキュメントのコードを参考に、簡単な計算処理の進捗状況表示を試してみます。

main.py:

import time
from rich.progress import track

values = list(range(10))  # 0~9 の数値のリストを用意
result = 0

for value in track(values, description="処理中..."):
    result += value  # 値を足し合わせ
    time.sleep(0.5)  # 意図的に遅延させる

print(result)  # 結果表示

実行結果

Cygwinからsshで接続したUbuntu Linuxbash上:

Windows11のPowerShell 7上:

クロスプラットフォームで問題なく動作しています。便利でした。