近期我写下了两篇关于日志输出附带高亮颜色的博文:html
有效的使用工具为的是在咱们开发的过程当中, 能快速定位咱们须要关注的内容, 也感谢那些第三方库或者插件的开发者们。python
这篇博文主要是想介绍 rich
这个第三方库的使用, 那为什么会提到以前写的关于日志输出的呢?缘由是 rich
也是颜色输出日志的第三方库。shell
Rich 的官方使用文档windows
python3 -m pip install rich
复制代码
如下测试皆采用
python3 medusa.py
的方式执行测试代码。函数
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/5da32395e51d4578200cc9c5',
'locals()': '返回当前位置所有局部变量, 并以字典的方式展现',
'python': '一种简单直接的开发语言, 好用就对了',
})
复制代码
在 rich
中 Console
对象是一个重点对象了, 首先你须要实例化一个 Console
对象, 在进行使用, 而你实例化的对象在渲染的时候将会检测如下几个属性值:post
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")
复制代码
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
的功能还不错, 推荐了几个简单的功能, 让你不须要查看大量的官方文档再去评估这个工具的优缺点。
今天的你进步了吗?