当前位置: 首页 > news >正文

Rich:让 Python 终端输出变得丰富好看

文章目录

  • 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 等。

http://www.jsqmd.com/news/1101595/

相关文章:

  • 实战指南:如何用OBS RTSP服务器插件实现高效专业直播推流
  • PAT考生迟到别慌!用C语言结构体快速实现座位号查询系统(附完整代码)
  • 别再只用SE了!手把手教你用PyTorch实现更轻量的ECA注意力模块(附完整代码)
  • 打破田间“信号孤岛”,乾元通多链路聚合路由筑基智慧农业新底座
  • 掌握Verilog-2001中的Function:语法、应用与设计实践
  • 基于关键点轨迹分析的奶牛社交行为识别技术
  • 苹果开放跨设备直连,瑞昱率先交卷:iOS 26 Wi-Fi Aware实测通关!
  • 四大主流图标库硬核横评:AI Agent 时代,谁是最佳拍档
  • Postman接口压力测试六步法:快速验证并发性能的轻量级方案
  • YOLOv5模型瘦身实战:用torch_pruning 0.2.7给模型‘减肥’,附完整代码与避坑指南
  • 别再只盯着CNN了!手把手带你用PyTorch从零搭建ViT模型(附完整代码)
  • 别再死记硬背公式了!用Python+SymPy实战推导圆柱面方程(附完整代码)
  • BiliDownloader:如何用开源技术实现B站视频的高效下载?
  • VMware虚拟机克隆全场景实战:从完整克隆到链接克隆,4步完成零故障迁移
  • 桌面分区管理神器:NoFences让你的Windows桌面告别混乱时代
  • STM32引脚不够用?试试用PCF8574芯片扩展IO口(附完整I2C驱动代码)
  • 别再只会用SignalR了!用Fleck库5分钟在.NET 6/8里搭一个轻量级WebSocket服务端
  • 别再迷信Transformer了!用PyTorch手把手实现DLinear时间序列预测(附完整代码)
  • Oracle 19c 监听器完全指南
  • MySQL数据库从入门到实践:核心概念、SQL操作与生产环境部署指南
  • 3个步骤让Windows电脑变身安卓应用中心:APK安装器使用指南
  • Cursor Free VIP终极指南:三步轻松破解Cursor AI试用限制,永久免费使用Pro功能
  • 大模型稀疏激活原理:MoE架构中2%参数如何实现高效推理
  • VMware克隆效率提升300%的秘密(2024最新vSphere 8.0克隆加速技术深度解密)
  • 关系数据库设计题解:实体与联系提取
  • Redisson 使用手册:从 API 误区到看门狗失效,在此终结分布式锁的噩梦
  • Python pickle反序列化进阶:绕过R操作码黑名单与Gadget链构造
  • n8n 定时任务怎么搭? 我做了跨境选品自动化
  • GESP2026年6月认证C++三级( 第一部分选择题(8-15))精讲
  • SAP ABAP实战:手把手教你用BAPI创建销售订单时,如何绕过标准逻辑修改税额(附完整代码)