Rich

介绍

Rich 是一个 Python 库,可以为你的终端(命令行界面)带来丰富的文本和精美的格式。它能做的事情包括:

  • 轻松添加颜色和样式(粗体、斜体、下划线等)。
  • 漂亮地打印(Pretty Print)Python 的数据结构(如列表、字典)。
  • 创建精美的表格、进度条、Markdown、语法高亮的代码等。
  • 提供更高级的日志记录、Traceback 等功能。

基本上,它就是让你告别单调的黑白终端输出的利器。


安装

首先,你需要安装 rich 库。在你的终端中运行:

pip install rich

使用方法

Rich 的使用方式非常灵活,我们从最简单的开始。

使用 rich.print

rich 提供了一个可以替代 Python 内置 print 函数的 print 函数。

如何使用: 只需从 rich 中导入 print,然后像平常一样使用它。

from rich import print

# 1. 自动美化数据结构
my_dict = {'name': '张三', 'age': 25, 'hobbies': ['coding', 'reading']}
print("普通 print 输出:")
# print(my_dict)  # 如果用普通 print,输出会是一行
print("Rich print 输出:")
print(my_dict)  # Rich 会自动格式化并高亮输出

# 2. 使用 Console Markup (类似 BBCode 的标记语言)
print("\n使用标记添加颜色和样式:")
print("[bold red]这是一个粗体的红色错误信息![/bold red]")
print("[bold green]操作成功![/bold green]")
print("[underline blue]这是一个带下划线的蓝色文本。[/underline blue]")
print("你可以混合样式,比如 [bold italic yellow on_blue]粗斜体黄字蓝底[/bold italic yellow on_blue]")

关键点:

  • rich.print 会自动识别并美化常见的 Python 对象。
  • 它使用一种简单的标记语言来控制样式,格式为 [样式]文本[/样式]。

创建精美的表格 (Table)

使用 Rich 创建表格非常直观。

如何使用: 你需要 Console 对象来打印表格,并使用 Table 类来构建它。

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

# 1. 创建一个 Console 对象
console = Console()

# 2. 创建一个 Table 实例
table = Table(title="Rich Table Showcase", show_header=True, header_style="bold magenta")

# 3. 添加列
table.add_column("Name", style="dim", width=12)
table.add_column("Age", justify="right")
table.add_column("City", style="cyan")
table.add_column("Hobbies", style="green")

# 4. 添加行
table.add_row("Alice", "28", "New York", "Painting, Guitar")
table.add_row("Bob", "35", "Los Angeles", "Surfing, Gaming")
table.add_row("Charlie", "22", "Chicago", "Photography, Reading")
table.add_row("Diana", "29", "Houston", "Science, Running")

# 5. 打印表格
console.print(table)

运行这段代码,你就能在终端中看到和图片里几乎一模一样的表格了!

显示进度条 (Progress Bar)

当你的脚本需要运行一段时间时,显示一个进度条可以极大地提升用户体验。Rich 的进度条非常易用。

如何使用: 最简单的方式是使用 track 函数。

import time
from rich.progress import track

# 只需用 track() 函数包裹你的 for 循环
for step in track(range(100), description="正在处理..."):
    # 模拟一些工作
    time.sleep(0.05)

当你运行这段代码时,你会看到一个动态更新的进度条,包含百分比、进度条本身、以及预计剩余时间。

语法高亮的代码 (Syntax Highlighting)

如果你需要在终端打印一段代码,Rich 可以自动为其添加语法高亮,使其更易读。

如何使用: 使用 Syntax 类。

from rich.console import Console
from rich.syntax import Syntax

# 你的代码字符串
my_code = """
def greet(name):
    print(f"Hello, {name}!")

if __name__ == "__main__":
    greet("Rich")
"""

# 创建一个 Syntax 对象
syntax = Syntax(my_code, "python", theme="monokai", line_numbers=True)

# 使用 Console 对象打印
console = Console()
console.print(syntax)

Console 对象:更强大的控制

虽然 rich.print 很方便,但大多数高级功能(如表格、语法高亮等)都需要通过 rich.console.Console 对象来调用。

你可以将 console 对象视为与终端交互的主要接口。

from rich.console import Console

# 创建一个 console 实例,你可以在整个程序中重复使用它
console = Console()

# 使用 console.print 代替 print
console.print("这是通过 Console 对象打印的。", style="bold green")

# 还有其他有用的方法,比如 .log(),它会自动添加时间和代码位置
console.log("这条日志包含了额外的信息。")

总结

  1. 安装: pip install rich。
  2. 简单使用: from rich import print,然后用它来替代内置 print,享受自动美化和颜色标记。
  3. 创建表格: 使用 rich.table.Table 定义表格结构,然后用 console.print() 显示。
  4. 显示进度: 用 rich.progress.track 包裹你的循环。
  5. 显示代码: 使用 rich.syntax.Syntax 来实现语法高亮。
Author

JuyaoHuang

Publish Date

10 - 10 - 2025