文章目录
- Rich:让 Python 终端输出变得丰富好看
Rich:让 Python 终端输出变得丰富好看
Rich 是一个 Python 库,用于在终端中生成富文本和美观的格式化输出。它在 GitHub 上收获了 56,692 个 Star。
这个库可以让终端输出变得丰富多彩。通过 Rich API,你可以轻松地为终端输出添加颜色和样式。
Rich 可以渲染漂亮的表格、进度条、Markdown、语法高亮的源代码、错误追踪信息等,这些都是开箱即用的。
主要功能
Rich 提供了多种内置组件,可以用来创建优雅的输出,帮助你调试代码。
表格
Rich 可以用 Unicode 字符渲染灵活的表格。支持多种格式化选项,包括边框样式、单元格对齐等。
表格会自动调整列宽以适应终端宽度,必要时会自动换行。
进度条
Rich 可以渲染多个无闪烁的进度条,用于跟踪长时间运行的任务。
只需将任何序列包装在track函数中并遍历结果即可。进度条支持显示百分比、文件大小、传输速度和剩余时间等信息。
日志
Console 对象的log()方法与print()接口类似,但会额外显示当前时间以及调用所在的文件和行号。
默认情况下,Rich 会对 Python 结构和 repr 字符串进行语法高亮。如果记录的是集合(如字典或列表),Rich 会将其漂亮地打印出来以适应可用空间。
Markdown 渲染
Rich 可以渲染 Markdown,并能合理地将格式转换到终端显示。
使用时只需导入 Markdown 类,用包含 Markdown 代码的字符串构造它,然后打印到控制台即可。
语法高亮
Rich 使用 pygments 库实现语法高亮。使用方式与渲染 Markdown 类似,构造一个 Syntax 对象然后打印到控制台。
错误追踪
Rich 可以渲染美观的错误追踪信息,比标准 Python 追踪信息更易读,显示的代码也更多。可以将 Rich 设置为默认的追踪处理器,这样所有未捕获的异常都会由 Rich 渲染。
树形结构
Rich 可以渲染带引导线的树形结构。树适合显示文件结构或其他层级数据。
树的标签可以是简单文本,也可以是 Rich 能渲染的任何其他内容。
列布局
Rich 可以将内容整齐地渲染成列,支持等宽或最优宽度。
兼容性
Rich 支持 Linux、macOS 和 Windows。True color 和 emoji 在新版 Windows Terminal 中可用,经典终端仅支持 16 色。Rich 需要 Python 3.8 或更高版本。
Rich 可以在 Jupyter notebook 中使用,无需额外配置。
安装使用
安装很简单,通过 pip 命令即可:
pip install rich安装后可以运行以下命令测试 Rich 输出:
python -m rich快速开始
要在应用中添加富文本输出,可以导入 rich print 方法,它与 Python 内置的 print 函数签名相同:
from rich import print print("Hello, [bold magenta]World[/bold magenta]!")如果需要更多控制,可以使用 Console 对象:
from rich.console import Console console = Console() console.print("Hello", "World!", style="bold red")Rich 的 Console 对象支持类似 BBCode 的标记语法,可以实现更精细的样式控制。
相关项目
Rich 还有一个姊妹项目 Textual,可以用来在终端中构建复杂的用户界面。
另外还有 Rich CLI,这是一个基于 Rich 的命令行应用,可以直接在命令行中高亮代码、渲染 Markdown、在表格中显示 CSV 等。
目 Textual,可以用来在终端中构建复杂的用户界面。
另外还有 Rich CLI,这是一个基于 Rich 的命令行应用,可以直接在命令行中高亮代码、渲染 Markdown、在表格中显示 CSV 等。