乐趣区

关于ide:15-万-Star大大提升终端体验的好工具Rich

【导语】:Rich 是一个能够在终端中提供富文本和精美格局的 Python 库。反对中文,终端爱好者能够试一下。

简介

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

Rich 的 API 相当丰盛,能够很轻松地给终端输入增加各种色彩和不同格调。

它还能够绘制丑陋的表格、进度条、markdown、代码高亮等。

我的项目主页

https://github.com/willmcguga…

性能一览

兼容性

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())

应用控制台

想要对 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")

输入如下图:

表情符号

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

>>> 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)

示例输入如下:

进度条

Rich 能够渲染多个不闪动的进度条形图,用来跟踪长时间运行的工作。

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

from rich.progress import track

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

还反对增加多个进度条。

.gif)
.gif)

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)

样例输入如下图:

结语

Rich 简略介绍就到这里了,喜爱的童鞋还能够看一下视频介绍,请见:

https://calmcode.io/rich/intr…

更具体介绍,请见我的项目主页:

https://github.com/willmcguga…

开源前哨 日常分享热门、乏味和实用的开源我的项目。参加保护 10 万 + Star 的开源技术资源库,包含:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

退出移动版