はじめに
「Pythonでツールを作ったけれど、出力が地味すぎて使いにくい…」 「デバッグ中の巨大な辞書データ、どれがキーでどれが値か見にくい!」
そんな悩みを一瞬で解決するのが Rich というライブラリです。 今回は、Richを使ってCLI(コマンドラインツール)のUXを劇的に向上させるテクニックを紹介します。
1. Richとは?
Richは、ターミナル上でリッチテキスト(色、スタイル、フォント)を表示するためのPythonライブラリです。 単純なテキストだけでなく、テーブル、プログレスバー、マークダウン、構文ハイライトなどを驚くほど簡単に実装できます。
2. インストール
pip install rich
3. これだけは外せない!Richの神機能 4選
① print を置き換えるだけでデータが読みやすく
from rich import print とするだけで、リストや辞書が自動的にフォーマットされ、色付けされます。
from rich import print
data = {
"status": "success",
"results": [
{"id": 1, "task": "プログラミング", "done": True},
{"id": 2, "task": "Qiita執筆", "done": False}
]
}
print(data) # インデントと色が自動でつく!
② Table でデータを整理する
標準の print では崩れがちなデータ一覧も、Table クラスを使えば一瞬です。
from rich.console import Console
from rich.table import Table
console = Console()
table = Table(title="プロジェクト進捗")
table.add_column("ID", style="cyan", no_wrap=True)
table.add_column("タスク", style="magenta")
table.add_column("完了", justify="center", style="green")
table.add_row("1", "Richの導入", "✅")
table.add_row("2", "ドキュメント作成", "⏳")
console.print(table)
③ Progress で「動いている感」を出す
処理に時間がかかる際、進捗バーがあるだけでユーザー体験は激変します。
import time
from rich.progress import track
for i in track(range(20), description="処理中..."):
time.sleep(0.1) # 重い処理の代わり
④ Traceback でエラー調査を快適に
開発中に最も役立つのがこれ。エラー画面をリッチにし、ソースコードのどこで間違えたかを強調表示してくれます。
from rich.traceback import install
install()
# これ以降のエラーは、超見やすい形式で表示されるようになります
4. 応用:さらに「映える」ツールにするために
パネルとレイアウト
Panel を使えば、タイトル付きの枠線でメッセージを強調できます。
from rich.panel import Panel
console.print(Panel("システムを起動します...", title="System", border_style="bold blue"))
Markdownをターミナルに表示
なんと、Markdownファイルをそのままターミナルにレンダリングすることも可能です。
from rich.markdown import Markdown
with open("README.md") as f:
markdown = Markdown(f.read())
console.print(markdown)
まとめ
Rich を使うメリットは単なる見た目だけではありません。
- 視認性の向上: 色分けにより情報の優先度が直感的にわかる。
- デバッグ効率化: 構造化されたデータやエラー表示が見やすい。
- モチベーションUP: 自分が作ったツールがカッコいいと触るのが楽しくなる!
ぜひ、Pythonスクリプトにも from rich import print を追加してみてください。
参考リンク
- Rich公式ドキュメント(GitHub)
- Textual(Richの作者によるTUIフレームワーク)