rich - Python终端美化库

rich 是一个 Python 库,用于在终端中编写富文本(带颜色和样式),并显示表格、Markdown 和语法高亮代码等高级内容。

使用 rich 可以让您的命令行应用程序更具视觉吸引力,并以更易读的方式呈现数据。rich 也可以作为一个有用的调试辅助工具,通过漂亮地打印和语法高亮数据结构。

特性概览

rich 提供了丰富的功能来增强终端输出:

  • 彩色和样式文本: 使用简单的标记语言为文本添加颜色、粗体、斜体等样式。
  • 漂亮打印 (Pretty Printing): 自动格式化 Python 对象和数据结构,使其更易于阅读。
  • 语法高亮: 支持多种编程语言的代码语法高亮。
  • 表格: 在终端中创建美观的表格。
  • Markdown: 直接在终端渲染 Markdown 内容。
  • 进度条: 显示任务的进度(虽然 tqdm 更专注于此,但 rich 也提供)。
  • Traceback: 美化 Python 异常的 Traceback 输出。
  • 日志处理: 提供一个日志处理器,可以将日志输出到终端并进行美化。
  • Inspect: 一个强大的函数,可以生成任何 Python 对象的详细报告,非常适合调试。
  • 布局: 支持更复杂的终端布局。

安装

您可以使用 pip 或您喜欢的包管理器从 PyPI 安装 rich Source

1
pip install rich

如果您打算在 Jupyter Notebook 中使用 rich,可以安装额外的依赖项:

1
pip install "rich[jupyter]"

快速开始

最快上手 rich 的方法是导入其替代的 print 函数。它与内置的 print 函数接受相同的参数,可以作为直接替代品 Source

1
2
3
4
5
6
7
8
9
10
11
12
13
from rich import print

# 打印带颜色和样式的文本
print("[italic red]Hello[/italic red] World!")

# 漂亮打印 Python 对象
data = {
"name": "rich",
"version": "stable",
"features": ["color", "style", "tables", "markdown"],
"nested": {"a": 1, "b": [2, 3]}
}
print(data)

如果您不想覆盖内置的 print 函数,可以将其导入为其他名称,例如 rprint Source

1
2
3
from rich import print as rprint

rprint("[bold green]This is a bold green message.[/bold green]")

控制台标记 (Console Markup)

rich 使用简单的方括号语法来添加颜色和样式 Source

1
2
3
4
5
6
7
8
9
from rich import print

print("[bold]粗体文本[/bold]")
print("[italic]斜体文本[/italic]")
print("[underline]下划线文本[/underline]")
print("[strike]删除线文本[/strike]")
print("[red]红色文本[/red]")
print("[blue on yellow]蓝色文本在黄色背景上[/blue on yellow]")
print("[link=https://rich.readthedocs.io]这是一个链接[/link]")

漂亮打印 (Pretty Printing)

rich 的 pretty 模块可以自动美化 Python 数据结构的输出。您可以使用 pretty.install() 来启用此功能,以便在 REPL 或脚本中自动漂亮打印对象 Source

1
2
3
4
5
6
7
8
9
from rich import pretty
pretty.install()

# 现在打印复杂对象会自动美化
my_list = [
{"id": 1, "name": "Item A", "values": [10, 20, 30]},
{"id": 2, "name": "Item B", "values": [40, 50, 60]},
]
print(my_list)

Inspect 函数

rich.inspect() 函数可以生成关于任何 Python 对象的详细报告,包括其类型、值、属性和方法等,是调试的绝佳工具 Source

1
2
3
4
5
from rich import inspect
from rich.color import Color

color = Color.parse("blue")
inspect(color, methods=True) # 显示对象及其方法

错误处理

rich 提供了 rich.traceback 模块来美化异常的 Traceback 输出。您可以使用 rich.traceback.install() 来启用此功能,以便在异常发生时自动显示美化后的 Traceback Source

1
2
3
4
5
6
7
8
from rich import traceback
traceback.install()

try:
# 引发一个异常
raise ValueError("这是一个测试异常")
except ValueError as e:
print(e)

更多功能

rich 还提供了许多其他强大的功能,例如:

  • Tables: 使用 rich.table.Table 类创建和打印表格。
  • Syntax: 使用 rich.syntax.Syntax 类高亮显示代码片段。
  • Markdown: 使用 rich.markdown.Markdown 类渲染 Markdown 文件或字符串。

探索这些功能可以极大地提升您终端应用的交互性和可读性。

更多资源


© 2025 vmoranv 使用 Stellar 创建


😊本站2025.05.05日起🎉累计访问人次💻


614447.xyz