目录
如何使用 Python rich 库让你的终端输出更加丰富多彩
Python 的 rich 库是一个用于在终端中创建富文本和美观格式的库。它可以用来打印彩色文本、表格、进度条等,使得命令行界面更加生动和用户友好。
以下是如何安装和使用 rich 库的一些基础示例。
1. 使用 pip 安装
$ pip install rich
确保你的 Python 版本至少是 3.6.1,这是 rich 库所要求的最低版本
2. 基本使用
下面列出基本常规的使用案例,rich 功能不局限于此,更多如渲染 markdown、tree 或 输出代码语法高亮等功能,可参考 官方文档
2.1. 打印彩色文本
from rich import print
print("[bold red]Hello[/bold red], [green]World![/green]")
这个功能类似于 shell 中定义颜色文本输出,可参看 Shell技巧#终端使用色彩字体
2.2. 创建表格
酷炫的功能,终端可以使用表格展示数据,实用性很强
from rich.table import Table
from rich.console import Console
console = Console()
table = Table(show_header=True, header_style="bold blue")
table.add_column("Date", style="dim", width=12)
table.add_column("Title")
table.add_column("Production Budget", justify="right")
table.add_column("Box Office", justify="right")
table.add_row("Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118")
table.add_row("May 25, 2018", "[red]Solo[/red]: A Star Wars Story", "$275,000,000", "$393,151,347")
table.add_row("Dec 15, 2017", "Star Wars Ep. VIII: The Last Jedi", "$262,000,000", "$1,332,539,889")
console.print(table)
2.3. 进度条示例
from rich.progress import Progress
import time
with Progress() as progress:
task1 = progress.add_task("[red]Downloading...", total=1000)
task2 = progress.add_task("[green]Processing...", total=1000)
task3 = progress.add_task("[cyan]Cooking...", total=1000)
while not progress.finished:
progress.update(task1, advance=5)
progress.update(task2, advance=3)
progress.update(task3, advance=9)
time.sleep(0.02) # 代表实际工作的代码
2.4. 使用日志记录
from rich.logging import RichHandler
import logging
# 配置日志记录
logging.basicConfig(
level="NOTSET",
format="%(message)s",
datefmt="[%X]",
handlers=[RichHandler()]
)
logger = logging.getLogger("rich")
logger.info("这是一条信息日志")
logger.warning("警告!存在潜在问题")
logger.error("这是一条错误日志")
3. Rich cli
Rich 从 python 库引申了终端的 rich-cli 工具,安装(brew install rich
)好可以直接在 shell 终端使用,几个比较使用的功能
$ rich README.md
$ rich data.json
$ rich notebook.ipynb
$ rich loop.py
Reference
版权所有,本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。转载请注明出处:https://www.wangjun.dev//2024/04/how-to-use-python-rich/