【导语】:Rich 是一个可以在终端中提供富文本和精美格式的 Python 库。支持中文,终端爱好者可以试一下。

简介

今天给大家介绍的 Rich ,已经连续两天登上 GitHub 日榜,在 GitHub 快拿下 1.5 万 Star。它的开发者是国外开发小哥 Will McGugan。

Rich 的 API 相当丰富,可以很轻松地给终端输出添加各种颜色和不同风格。

它还可以绘制漂亮的表格、进度条、markdown、代码高亮等。

项目主页

https://github.com/willmcgugan/rich

功能一览

1.5 万 Star!大大提升终端体验的好工具:Rich-LMLPHP

兼容性

Rich 支持三大平台 Linux、OSX 和 Windows。真彩色/表情符号可与新的 Windows 终端一起使用,Windows 的经典终端仅限 8 种颜色。Rich 要求 Python 版本最低 v 3.6.1。可以与Jupyter 笔记本一起使用,而无需其他配置。

安装说明

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

pip install rich

Rich 的打印功能

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

from rich import print

print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())

1.5 万 Star!大大提升终端体验的好工具:Rich-LMLPHP

使用控制台

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

from rich.console import Console

console = Console()

Console 对象含有一个print 方法,其界面与 python 内置的print功能界面相似。您可以试试:

console.print("Hello", "World!")

这时终端上会显示“ Hello World!”。

请注意,与内置的“打印”功能不同,Rich 会将文字自动换行以适合终端宽度。

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

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

输出如下图:

1.5 万 Star!大大提升终端体验的好工具:Rich-LMLPHP

表情符号

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

>>> console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
😃 🧛 💩 👍 🦝from rich.progress import track

for step in track(range(100)):
    do_step(step)from rich.progress import track

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

(注:Rich 的开发者提醒这个功能慎用。)

表格

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(
    "Dev 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",
    "[bold]$1,332,539,889[/bold]",
)

console.print(table)

示例输出如下:

1.5 万 Star!大大提升终端体验的好工具:Rich-LMLPHP

进度条

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

用法:用track函数调用任何程序并迭代结果。

from rich.progress import track

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

还支持添加多个进度条。

1.5 万 Star!大大提升终端体验的好工具:Rich-LMLPHP

Markdown

Rich 可以呈现 markdown,并可相当不错的将其格式转移到终端。

from rich.console import Console
from rich.markdown import Markdown

console = Console()
with open("README.md") as readme:
    markdown = Markdown(readme.read())
console.print(markdown)

样例输出如下图:

1.5 万 Star!大大提升终端体验的好工具:Rich-LMLPHP

结语

Rich 简单介绍就到这里了,喜欢的童鞋还可以看一下视频介绍,请见:

https://calmcode.io/rich/introduction.html

更详细介绍,请见项目主页:

https://github.com/willmcgugan/rich

04-11 12:40