快轉到主要內容
  1. 教學文章/

讓你的終端機華麗變身:Rich 套件教學

·2 分鐘· loading · loading · ·
Python Rich Cli
每日拍拍
作者
每日拍拍
科學家 X 科技宅宅
目錄
Python 學習 - 本文屬於一個選集。
§ 13: 本文

rich

一. 前言
#

在 CLI 工具開發、debug script、教學演示的時候,如果終端機輸出還是一片黑白文字,不只不吸引人、也很難閱讀。這篇拍拍君就要來介紹一個超強套件 —— rich,讓你用 Python 輕鬆打造「漂亮終端機」!

二. 安裝 rich 套件
#

pip install rich

安裝後就可以在任何 Python 腳本中使用啦!

三. 基本用法:比 print 更強大的 rich.print()
#

from rich import print
print("[bold magenta]Hello[/bold magenta] [green]World[/green] :sparkles:!")

這段程式碼會顯示出有顏色與 emoji 的文字!

rich1

四. 格式化表格:rich.table
#

from rich.table import Table
from rich.console import Console

table = Table(title="DailyPyPy 開發進度")

table.add_column("項目", justify="left", style="cyan")
table.add_column("負責人", style="magenta")
table.add_column("進度", justify="right", style="green")

table.add_row("Web 介面", "拍拍君", "✅ 完成")
table.add_row("資料庫", "拍拍醬", "🔧 進行中")
table.add_row("AI 模型", "chatPTT", "❌ 尚未開始")

console = Console()
console.print(table)

輸出效果如下:

rich2

五. 進度條:rich.progress
#

from rich.progress import track
import time

for i in track(range(10), description="處理中..."):
    time.sleep(0.3)

這會產生動畫式的進度條,非常適合搭配長時間運算或下載顯示狀態。 另外也可以參考拍拍君寫的 tqdm介紹

rich3

六. 顯示 Markdown、JSON、Syntax 高亮
#

from rich.console import Console
from rich.markdown import Markdown

console = Console()
md = Markdown("# 拍拍君的教學\n\n這是一段用 Markdown 寫的說明。")
console.print(md)

rich4

同理也可顯示:

  • JSON → from rich import print_json
  • 程式碼高亮 → from rich.syntax import Syntax

七. 結語
#

Rich 是一個讓 Python script 更有生命力的工具。無論是 debug、教學、或打造工具,都值得安裝來玩玩。一些更進階的使用方式是可以讓你的 python scripts 變成指令軟體(請參閱下面的延伸閱讀)!

延伸閱讀
#

  • Textual(打造終端機 GUI 的 rich 進階套件)
  • Typer (CLI 的 App)
Python 學習 - 本文屬於一個選集。
§ 13: 本文

相關文章

Python: 我需要進度條! tqdm
·3 分鐘· loading · loading
Python Tqdm Data Science
開發的好習慣 Unit Test
·5 分鐘· loading · loading
Python Pytest Ci Unittest
管理秘密環境變數 python-dotenv
·1 分鐘· loading · loading
Python Dotenv
在 iPhone 上也可以使用本地 LLM!
·2 分鐘· loading · loading
好玩軟體 LLM Ollama
iPadOS 26 搶先體驗!
·3 分鐘· loading · loading
搶先體驗 Ipad Os
用 NAS 搭設遠端 Linux: Webtop 教學
·3 分鐘· loading · loading
好玩軟體 Linux Webtop