Rich 快速入门指南:为 Python 终端应用打造富文本与精美格式化输出

发布时间:2026/9/18 7:22:33
Rich 快速入门指南:为 Python 终端应用打造富文本与精美格式化输出 Rich 快速入门指南为 Python 终端应用打造富文本与精美格式化输出【免费下载链接】richRich is a Python library for rich text and beautiful formatting in the terminal.项目地址: https://gitcode.com/gh_mirrors/ri/richRich 是一个用于在终端中书写富文本带颜色和样式的文本的 Python 库同时支持渲染表格、Markdown、语法高亮代码等高级内容。本文以官方文档 docs/source/introduction.rst 为主线结合仓库源码讲解如何安装、快速上手rich.print、在 REPL 与 IPython 中启用美化输出以及使用rich.inspect进行对象诊断帮助你在命令行应用中呈现更可读的数据并高效调试。引言Rich 能做什么Rich 的核心目标非常明确让命令行程序在视觉上更吸引人并以更可读的方式呈现数据。它由 Will McGugan 创建仓库位于本项目根目录包描述为Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal见 pyproject.toml。官方文档 introduction.rst 给出了它的定位向终端写入带颜色与样式的富文本展示表格、Markdown、语法高亮代码等高级内容通过美化打印pretty printing与语法高亮来呈现数据结构作为调试辅助工具。也就是说Rich 既是 CLI 应用的美容师也是日常开发调试的放大镜。环境要求Rich 的跨平台支持非常广泛官方文档明确说明支持macOS、Linux 和 Windows三大平台Windows 上既支持古老的cmd.exe终端也支持新版 Windows Terminal后者对颜色和样式的支持要好得多需要Python 3.8.0 及以上版本文档原文。从源码看仓库 pyproject.toml 中的python 3.9.0是构建侧的最低约束同时 classifiers 中声明了 Python 3.9 ~ 3.14 的完整支持矩阵实际运行时要求以文档说明的 Python 3.8.0 为准。注意PyCharm 用户需要在 Run/Debug 配置的输出控制台中启用emulate terminal模拟终端选项才能看到带样式的输出。安装 RichRich 发布在 PyPI 上通过pip或你喜欢的包管理器即可安装pip install rich如果已经安装过可以加上-U参数更新到当前版本pip install -U rich如果打算在 Jupyter 中使用 Rich还需要安装一些附加依赖官方为此提供了专用的 extrapip install rich[jupyter]从 pyproject.toml 的[tool.poetry.extras]可以看到jupyter这个 extra 实际对应的是可选的ipywidgets版本约束7.5.1,9依赖它让 Rich 的渲染结果能够以 HTML 形式在 Notebook 中展示。运行 Demo 验证安装安装完成后可以通过下面这条命令快速验证 Rich 是否正确安装并顺带观看它的功能演示python -m rich这条命令会调用 rich/main.py 模块它内部构建了一张名为make_test_card()的演示卡片见 rich/main.py以一张大表格集中展示 Rich 的核心能力包括颜色4-bit 颜色、8-bit 颜色、Truecolor1670 万色、Dumb 终端支持、自动颜色转换样式bold、dim、italic、underline、strike、reverse、blink等全部 ANSI 样式文本左/中/右/两端对齐与自动换行中/日/韩等亚洲语言支持Console markup类 BBCode 的标记语法与 emoji表格、语法高亮 美化打印、Markdown渲染等。__main__.py还会用冷缓存/热缓存两种状态打印演示卡片的渲染耗时让你直观感受到 Rich 的渲染性能源码中使用了process_time()计时见 rich/main.py。快速上手富文本 print作为内置 print 的替代品上手 Rich 最快的方式是导入它提供的替代版print函数。它的签名与内置print完全一致可以直接替换使用from rich import print之后就可以像平时一样打印字符串或对象Rich 会自动做基础的语法高亮见 docs/source/highlighting.rst并格式化数据结构让它们更易读。从源码看这个替代print定义在 rich/init.py其签名为print(*objects, sep , end\n, fileNone, flushFalse)与内置print保持相同接口sep默认为空格、end默认为换行、file默认为None即 stdout。其中flush参数实际上没有效果因为Rich 总是会立即刷新输出。实现上它委托给全局Console实例get_console()延迟创建见 rich/init.py。Console markup 与数据结构美化字符串中可以包含console markup控制台标记用于在输出中插入颜色和样式。官方文档给出了同时演示 markup 与 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, }其中[italic red]Hello[/italic red]是 markup 标记标签内的文本被渲染为红色斜体[/...]是闭合标签。locals()返回的字典则被 Rich 以键着色、结构对齐的方式美化打印。避免遮蔽内置 print如果你不想遮蔽 Python 内置的print可以用别名导入from rich import print as rprint之后调用rprint(...)即可行为完全一致。关于rich.print的更多细节如highlight参数、主题等可以继续阅读仓库中的 docs/source/console.rst 与 docs/source/markup.rst。在 REPL 中启用 RichRich 可以被安装进 Python REPL使所有数据结构自动美化打印并带语法高亮 from rich import pretty pretty.install() [Rich and pretty, True]pretty.install()会替换内置的repr相关行为源码见 rich/pretty.py其中install函数将 Rich 的Pretty渲染器接入 REPL 的显示钩子。这个特性还有一个妙用可以借此体验 Rich 的各种 renderable可渲染对象。官方文档示例 from rich.panel import Panel Panel.fit([bold yellow]Hi, Im a Panel, border_stylered)Panel.fit()会根据内容尺寸自动收缩面板边框[bold yellow]是 markupborder_stylered设置边框颜色为红色。仓库中还有更多 renderable 示例脚本例如 examples/rainbow.py、examples/table.py 等均位于 examples/ 目录。IPython 扩展Rich 还内置了一个IPython 扩展它会完成上述 pretty install同时安装美化版 traceback回溯。加载方式In [1]: %load_ext rich也可以让它默认加载在 IPython 配置文件中把rich添加到c.InteractiveShellApp.extension变量里即可。从源码 rich/_extension.py 可以看到load_ipython_extension的实际实现是依次调用from rich.pretty import install与from rich.traceback import install as tr_install——也就是同时启用美化打印与美化回溯。这正是文档所说pretty install pretty tracebacks的底层实现。对应地pyproject.toml 的 classifiers 中也声明了Framework :: IPython。Rich Inspect对象诊断利器Rich 提供了rich.inspect函数能够对任意 Python 对象生成一份诊断报告。它是非常出色的调试辅助工具也是展示 Rich 输出能力的绝佳示例。官方文档示例 from rich import inspect from rich.color import Color color Color.parse(red) inspect(color, methodsTrue)这会列出Color对象Color.parse(red)解析出的实例的属性和方法信息并以带颜色、分组的排版呈现。从源码 rich/init.py 看inspect的完整参数如下均可选均有默认值参数默认值作用titleNone报告标题缺省时使用对象类型名helpFalse显示完整帮助文本而非仅第一段 docstringmethodsFalse是否同时检查可调用对象方法docsTrue是否渲染 docstringprivateFalse是否显示单下划线开头的私有属性dunderFalse是否显示双下划线开头的属性sortTrue属性按字母排序可调用对象置顶allFalse是否显示全部属性valueTrue是否美化打印属性值consoleNone指定输出用的 Console缺省用全局 Console官方 docstring 还总结了常用的组合用法inspect(OBJECT)查看摘要信息inspect(OBJECT, methodsTrue)查看方法inspect(OBJECT, helpTrue)查看完整非缩写帮助inspect(OBJECT, privateTrue)查看单下划线私有属性inspect(OBJECT, dunderTrue)查看双下划线属性inspect(OBJECT, allTrue)查看所有属性。实现上inspect通过 rich/_inspect.py 中的Inspect渲染器完成工作最终交给Console.print输出examples/ 目录中的exception.py、repr.py等脚本也演示了相关调试输出场景。下一步探索rich.print、pretty.install()、%load_ext rich与inspect只是 Rich 的入口。要继续深入可以在本仓库中按以下路径学习核心 Console 用法与全部参数docs/source/console.rst、rich/console.pyConsole markup 语法docs/source/markup.rst、rich/markup.py样式系统16 色/256 色/Truecolor、主题docs/source/style.rst、rich/style.py、rich/theme.py表格 docs/source/tables.rst、rich/table.py进度条 docs/source/progress.rst、rich/progress.py语法高亮与自定义高亮器docs/source/highlighting.rst、docs/source/syntax.rst、rich/highlighter.py、rich/syntax.py完整 API 参考docs/source/reference.rst。仓库的 examples/ 目录提供了大量可直接运行的示例如table.py、progress.py、layout.py、tree.py配合 tests/ 目录中的测试用例如 tests/test_pretty.py、tests/test_inspect.py可以边跑边验证本文中的每一处行为。【免费下载链接】richRich is a Python library for rich text and beautiful formatting in the terminal.项目地址: https://gitcode.com/gh_mirrors/ri/rich创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询