python rich_Python - rich 库讲解

近期我写下了两篇关于日志输出附带高亮颜色的博文:

有效的使用工具为的是在我们开发的过程中,

能快速定位我们需要关注的内容,

也感谢那些第三方库或者插件的开发者们。

这篇博文主要是想介绍 rich 这个第三方库的使用,

那为何会提到之前写的关于日志输出的呢?原因是 rich 也是颜色输出日志的第三方库。

安装

python3 -m pip install rich

复制代码

使用

以下测试皆采用 python3 medusa.py 的方式执行测试代码。

print()

print 函数可以以更优雅的方式输出 Python 对象,

如果你打印的对象长度不需要分行显示的话,

它将用一行的方式展示给你。

#!/usr/bin/env python

# _*_ Coding: UTF-8 _*_

from rich import print as rprint

rprint("[italic red]Hello[/italic red] World!", locals())

复制代码

#!/usr/bin/env python

# _*_ Coding: UTF-8 _*_

from rich import print as rprint

rprint({

'name': 'MedusaSorcerer',

'blog': 'https://juejin.im/user/2805609406139950',

'locals()': '返回当前位置全部局部变量, 并以字典的方式展示',

'python': '一种简单直接的开发语言, 好用就对了',

})

复制代码

Console

在 rich 中 Console 对象是一个重点对象了,

首先你需要实例化一个 Console 对象,

在进行使用,

而你实例化的对象在渲染的时候将会检测以下几个属性值:

size 是终端的当前尺寸(如果您调整窗口大小, 则可能会更改)

encoding 是默认编码(通常为utf-8)

is_terminal 是一个布尔值, 指示 Console 实例是否正在写入终端

color_system 是包含控制台颜色系统的字符串

None 完全禁用颜色

auto 将自动检测颜色系统

standard 可以显示8种颜色, 正常和明亮的变化, 总共16种颜色

256 可以显示标准中的16种颜色以及240种颜色的固定调色板

truecolor 可以显示1670万种颜色, 这很可能是显示器可以显示的所有颜色

windows 在旧版 Windows 终端中可以显示8种颜色, 新的 Windows 终端可以显示 truecolor

我们先看下实例对象的 print() 方法:

#!/usr/bin/env python

# _*_ Coding: UTF-8 _*_

from rich.console import Console

console = Console()

console.print([1, 2, 3])

console.print("[blue underline]Looks like a link")

console.print(locals())

console.print("MEDUSA", style="white on blue")

复制代码

给我的第一感觉和上面的导入的 print() 没啥区别哈~

我们再看一个例子:

#!/usr/bin/env python

# _*_ Coding: UTF-8 _*_

from rich.console import Console

console = Console(width=20)

style = "bold white on blue"

console.print("Medusa", style=style)

console.print("Medusa", style=style, justify="left")

console.print("Medusa", style=style, justify="center")

console.print("Medusa", style=style, justify="right")

复制代码

我们可以在指定 Console 大小的时候使用对其参数:justify

那 style 样式参数有什么规则呢?

bold 或 b 粗体字

blink 用于闪烁的文本

blink2 用于快速闪烁的文本(大多数终端不支持)

conceal 用于隐藏的文本(大多数终端不支持)

italic 或 i 斜体文本(Windows不支持)

reverse 或 r 用于前景和背景颜色反转的文本

strike 或 s 带有一行的文字

underline 或 u 带下划线的文字

underline2 或 uu 双下划线文字

frame 用于带框的文本

encircle 环绕的文本

overline 或 o 上划线的文字

你也可以这样来说明多个样式 console.print("Danger, Will Robinson!", style="blink bold red underline on white 或者是使用 not 来否定样式 console.print("foo [not bold]bar[/not bold] baz", style="bold")。

rich 的功能很强大,

支持 console 直接输出,

支持 log 输出,

也支持 file 文件写入等方式,

还有表格输出等等,

如果你想进一步学习这个库,

建议你移步 Rich 的官方使用文档,

这个世界没有什么比官方文档更加具体的文档了。

那博客的目的呢?

在此之前你还在为你的输出担忧,

而一篇博文的简单介绍之后你发现了一个新的工具,

对的,

博客只是一个解决 BUG 和工具分享的平台了,

我个人觉得 rich 的功能还不错,

推荐了几个简单的功能,

让你不需要查看大量的官方文档再去评估这个工具的优缺点。

今天的你进步了吗?

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值