rich:格式化美观输出
楔子
偶然发现了一个特别强大又好玩的 Python 库,叫 rich,可以让你在终端中打印更加漂亮的输出。当然 rich 不仅仅可以支持带颜色打印,还可以绘制漂亮的表格、进度条、Markdown、语法高亮以及回溯等等。
并且 rich 库是适配所有操作系统的,此外还可以和 jupyter notebook 一块使用,无需任何其它配置。那么废话不多说,我们就来看看 rich 库的相关使用方法。
当然使用之前需要安装,直接 pip install rich 即可,注:使用 rich 需要 Python 版本不低于 3.6.1。
带颜色打印
带颜色打印最简单的做法就是使用 rich 提供的 print,它和内置的 print 参数是相同的。
from rich import print
# 采用中括号将颜色包起来,指定在想要改变颜色的字符串的前面即可
print("[blue]古明地觉是一个连幽灵都为之惧怕的少女")
# 也可以指定其它属性,比如粗体、斜体、下划线等等
print("[bold]粗体")
# 当然也可以同时指定,注意:斜体的话只适用于英文
print("[bold red]红色粗体")
print("[italic red]italic red")
print("[underline red]红色下划线")
# 当然这些属性是可以搭配使用的
print("[bold italic underline red]加粗、下划线、红色,但是下划线对中文无效")
# 一个字符串中可以为不同的部分指定不同的颜色、属性
print("[italic bold red]komeiji[cyan bold]satori")
# 但是问题来了,如果我希望只对字符串的某一部分做处理的话该怎么做呢?
# 比如:"komeiji satori" 的 komeiji 指定为绿色粗体,但其它的部分不变,就可以这么做
# "[bold green]komeiji[/bold green] satori",将前面的属性在指定部分的后面重新写一遍、并且在开头加上一个 /,表示限定结束位置
# 如果没有 / ,那么相当于为不同的部分指定不同的颜色属性,指定的 / 则是起一个限定范围的作用
print("[italic bold red]komeiji[/italic bold red]satori")
整体来说还是很简单的,此外它还具有 pprint 格式化打印的效果,并且终端中还会带颜色。
>>> print({i: f"satori_{i}" for i in range(1, 10)})
{
1: 'satori_1',
2: 'satori_2',
3: 'satori_3',
4: 'satori_4',
5: 'satori_5',
6: 'satori_6',
7: 'satori_7',
8: 'satori_8',
9: 'satori_9'
}
>>>
Console
虽然 rich.print 很好用,但其实功能还是有限,如果想要更复杂的功能,那么需要使用 Console 对象,当然 print 底层也是这么做的。
from rich.console import Console
console = Console()
Console 里面的参数还是很多的,但是都比较简单,源码中写了非常详细的注释。然后来看看 Console 对象都有哪些方法。
打印
首先是 print,rich.print 实际上就是先实例化一个 Console 对象,然后在调用内部的 print 方法。
日志记录
类似于 print,但是会自动带上时间。
>>> console.log("Hello, World!")
[13:34:52] Hello, World!
水平线
rule 方法会自动绘制一条水平线,这是将输入分割成多个部分的好方法。
>>> console.rule("标题一")
────────────────────────────────────── 标题一 ───────────────────────────────────────
>>>
不再赘述了,官网写的很详细, https://rich.readthedocs.io/en/latest/tables.html 。
如果觉得文章对您有所帮助,可以请囊中羞涩的作者喝杯柠檬水,万分感谢,愿每一个来到这里的人都生活愉快,幸福美满。
微信赞赏
支付宝赞赏