简介

Rich 是一个 Python 库,用于向终端写入文本(带颜色和样式),以及显示高级内容,例如表格、Markdown 和语法高亮代码。

使用 Rich 使您的命令行应用程序在视觉上更具吸引力,并以更易读的方式呈现数据。Rich 还可以通过漂亮打印和语法高亮数据结构来用作有用的调试工具。

需求

Rich 与 macOS、Linux 和 Windows 兼容。

在 Windows 上,支持(古老的)cmd.exe 终端和新的Windows 终端。后者对颜色和样式的支持有了很大的改进。

Rich 需要 Python 3.7.0 及更高版本。

注意

PyCharm 用户需要在运行/调试配置的输出控制台选项中启用“模拟终端”才能看到样式化输出。

安装

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

pip install rich

如果 Rich 已经安装,请添加 -U 开关以更新到当前版本。

如果您打算将 Rich 与 Jupyter 一起使用,那么有一些额外的依赖项,您可以使用以下命令安装它们

pip install "rich[jupyter]"

快速入门

使用 Rich 最快的方法是导入替代的 print 函数,它采用与内置 print 相同的参数,可以用作它的直接替换。以下是您将如何做到这一点

from rich import print

然后您可以像往常一样将字符串或对象打印到终端。Rich 将执行一些基本的语法 高亮显示 并格式化数据结构以使它们更易于阅读。

字符串可能包含 控制台标记,可用于在输出中插入颜色和样式。

以下演示了控制台标记和 Python 对象的漂亮格式

>>> print("[italic red]Hello[/italic red] World!", locals())

这将以下输出写入终端(包括所有颜色和样式)

Hello World!
{
    '__annotations__': {},
    '__builtins__': <module 'builtins' (built-in)>,
    '__doc__': None,
    '__loader__': <class '_frozen_importlib.BuiltinImporter'>,
    '__name__': '__main__',
    '__package__': None,
    '__spec__': None,
    'print': <function print at 0x1027fd4c0>,
} 

如果您不想覆盖 Python 的内置 print,您可以将 rich.print 导入为 rprint(例如)

from rich import print as rprint

继续阅读以了解 Rich 的更高级功能。

REPL 中的 Rich

Rich 可以安装在 REPL 中,以便 Python 数据结构会自动使用语法高亮进行漂亮打印。以下是方法

>>> from rich import pretty
>>> pretty.install()
>>> ["Rich and pretty", True]

您也可以使用此功能来尝试 Rich 可渲染对象。以下是一个示例

>>> from rich.panel import Panel
>>> Panel.fit("[bold yellow]Hi, I'm a Panel", border_style="red")

继续阅读以了解更多关于 Rich 可渲染对象的信息。

IPython 扩展

Rich 还包含一个 IPython 扩展,它将执行相同的漂亮安装 + 漂亮回溯。以下是加载它的方法

In [1]: %load_ext rich

您还可以通过在 IPython 配置 中的 c.InteractiveShellApp.extension 变量中添加 “rich” 来使其默认加载。

Rich Inspect

Rich 有一个 inspect() 函数,它可以生成任何 Python 对象的报告。这是一个非常棒的调试工具,也是 Rich 可以生成的输出的良好示例。这是一个简单的示例

>>> from rich import inspect
>>> from rich.color import Color
>>> color = Color.parse("red")
>>> inspect(color, methods=True)