Rich 库 – 让你的 Python 程序终端输出更优雅美观

在本文中,我们将了解一个名为 Rich 的强大 Python 库。

Rich 是一个 Python 库,可以为您在终端中提供富文本和精美格式,用于将富文本(带有颜色和样式)写入终端。Rich API 可以很容易的在终端输出添加各种颜色和不同风格,它允许您显示高级内容,例如绘制漂亮的表格,进度条,markdown和语法高亮代码及回溯等等,不胜枚举——开箱即用。

那么,为什么这很有用?好吧,如果您不使用 Rich 之类的工具,那么您在终端上的代码输出可能会有点无聊且难以理解。如果你想让它更清晰、更漂亮,你可能想要使用 Rich——你来对地方了,学习如何做。

兼容性

Rich 适用于 Linux,OSX 和 Windows。真彩色/表情符号可与新的 Windows 终端一起使用,Windows 的经典终端仅限 8 种颜色。

Rich 还可以与Jupyter 笔记本一起使用,而无需其他配置。

安装说明

使用pip或其他 PyPI 软件包管理器进行安装。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com 
⚡ pip install rich --user

Rich 的打印功能

想毫不费力地将 Rich 的输出功能添加到您的应用程序中,您只需导入rich 打印方法,该方法和其他 Python 的自带功能的参数类似。 您可以试试:

>>> from rich import print
>>> print("Hello, [bold magenta]World,www.linuxmi.com[/bold magenta]!", ":vampire:", locals())

使用控制台

想要对 Rich 终端内容进行更多控制,请您导入并构造一个控制台对象。

>>> from rich.console import Console
>>> console = Console()

Console 对象含有一个print方法,它的界面与 python 内置的print功能界面相似。

您可以试试:

>>> console.print("Hello", "World!")
Hello World!
>>> console.print("Hello", "World! www.linuxmi.com")
Hello World! www.linuxmi.com

您可能已经料到,这时终端上会显示“ Hello World!”。请注意,与内置的“打印”功能不同,Rich 会将文字自动换行以适合终端宽度。

有几种方法可以为输出添加颜色和样式。您可以通过添加style关键字参数来为整个输出设置样式。例子如下:

console.print("Hello", "World!", "www.linuxmi.com", style="bold red")

输出如下图:

这个范例一次只设置了一行文字的样式。如果想获得更细腻更复杂的样式,Rich 可以渲染一个特殊的标记,其语法类似于bbcode。示例如下:

console.print("有志者[bold cyan] www.linuxmi.com [/bold cyan]事[u]竟[/u] 成 [i]Linux迷[/i]。")

表情符号

将名称放在两个冒号之间即可在控制台输出中插入表情符号。示例如下:

>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
? ? ? ? ?

请谨慎地使用此功能。

表格

Rich 可以使用 Unicode 框字符来呈现多变的表格。Rich 包含多种边框,样式,单元格对齐等格式设置的选项。下面是一个简单的示例:

from rich.console import Console
from rich.table import Column, Table

console = Console()

table = Table(show_header=True, header_style="bold magenta")
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, 2021", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
)
table.add_row(
    "May 25, 2022",
    "[red]Solo[/red]: A Star Wars Story",
    "$275,000,000",
    "$393,151,347",
)
table.add_row(
    "Dec 15, 2020",
    "Star Wars Ep. VIII: The Last Jedi",
    "$262,000,000",
    "[bold]$1,332,539,889[/bold]",
)

console.print(table)

该示例的输出如下:

请注意,控制台标记的呈现方式与print()log()相同。实际上,由 Rich 渲染的任何内容都可以添加到标题/行(甚至其他表格)中。

Table类很聪明,可以调整列的大小以适合终端的可用宽度,并能根据需要环绕文本。

进度条

Rich 可以渲染多个不闪烁的进度条形图,以跟踪长时间运行的任务。

基本用法:用track函数调用任何程序并迭代结果。下面是一个例子:

from rich.progress import track

for step in track(range(100)):
    do_step(step)

添加多个进度条并不难。以下是从文档中获取的示例:

这些列可以配置为显示您所需的任何详细信息。内置列包括完成百分比,文件大小,文件速度和剩余时间。

要自己尝试一下,请参阅examples/downloader.py,它可以在显示进度的同时下载多个 URL。

您可以通过运行以下命令查看所有可能的格式设置:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                                                                                  
⚡ python3 -m rich

输出将类似于:

访问 GitHub 上的存储库并了解更多信息:https://github.com/willmcgugan/rich

The post Rich 库 – 让你的 Python 程序终端输出更优雅美观 first appeared on Linux迷.

版权声明:
作者:admin
链接:https://www.techfm.club/p/29975.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>