リッチなターミナル出力
richでCLIの出力を装飾します
「リッチなターミナル出力」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。
richとは
richは、色、スタイル、テーブル、プログレスバーなど、美しいターミナル出力を実現するサードパーティーライブラリです。pip install richでインストールします。
from rich import print
print('Hello, [bold magenta]world[/bold magenta]!')Consoleオブジェクト
中心となるクラスはConsoleです。そのprintメソッドはスタイル用マークアップを解釈し、折り返しや色の検出も処理します。
from rich.console import Console
console = Console()
console.print('Styled output here')
スタイル用マークアップ
richでは、[bold]、[red]、[italic]のような角括弧のマークアップを使って、テキスト内の一部分をインラインで装飾します。対応する終了タグで閉じます。
from rich.console import Console
console = Console()
console.print('[bold red]Error:[/bold red] something failed')
console.print('[green]Success[/green]')
style引数
マークアップの代わりにstyle引数を渡すと、行全体にスタイルを適用できます。
from rich.console import Console
console = Console()
console.print('Important notice', style='bold yellow on blue')
テーブル
Tableクラスは、見やすい枠付きのテーブルを描画します。列、行の順に追加してから、テーブルを出力します。
from rich.console import Console
from rich.table import Table
table = Table(title='Users')
table.add_column('Name')
table.add_column('Age')
table.add_row('Ana', '30')
table.add_row('Bob', '25')
Console().print(table)
パネル
Panelはコンテンツの周囲にボックスを描画します。メッセージを強調したり、出力をグループ化したりするのに便利です。
from rich.console import Console
from rich.panel import Panel
Console().print(Panel('All systems go', title='Status'))
プログレスバー
richでは、進行状況をリアルタイムで表示できます。track()は任意のイテラブルをラップし、処理が進むにつれて進行状況を描画します。
from rich.progress import track
import time
for _ in track(range(5), description='Working'):
time.sleep(0.1)
データの見やすい出力
console.printは、辞書やリストをシンタックスハイライトとインデント付きで描画します。通常のprintよりもはるかに見やすくなります。
from rich.console import Console
data = {'name': 'Ana', 'roles': ['admin', 'user'], 'active': True}
Console().print(data)
ロギングとトレースバック
richはrich.traceback.install()とロギングハンドラーによって、より見やすいトレースバックを提供します。エラー出力が格段に読みやすくなります。
from rich.traceback import install
install()
# Now uncaught exceptions print with rich, colorized formatting
ルールとレイアウト
console.rule()は、タイトルを付けることもできる横方向の区切り線を描画します。長い出力をセクションに分けるのに便利です。
from rich.console import Console
console = Console()
console.rule('[bold]Report[/bold]')
console.print('section content')
richとClickの組み合わせ
richはClickと相性よく連携します。Clickでコマンドを構成し、richで出力を装飾することで、洗練されたプロフェッショナルなCLIを実現できます。
import click
from rich.console import Console
console = Console()
@click.command()
@click.argument('name')
def hello(name):
console.print('Hello [bold]' + name + '[/bold]!')
理解度チェック
richについての理解度を確認しましょう。
まとめ
richによるターミナル出力について学びました。
Consoleは、角括弧のスタイル用マークアップとstyle引数を使って出力します。Table、Panel、ruleで出力を構成し、trackで進行状況を表示します。- richはデータを見やすく出力し、トレースバックを見やすく整えます。
- Clickとの組み合わせに適した外部ライブラリです。
CLIツールコースを修了しました。
よくある質問
「リッチなターミナル出力」レッスンは無料ですか?
はい。「リッチなターミナル出力」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。
「リッチなターミナル出力」で何を学びますか?
richでCLIの出力を装飾します ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「リッチなターミナル出力」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- argparseの基礎
- サブコマンドとオプション
- Clickライブラリ
- リッチなターミナル出力