近期我寫下了兩篇關於日誌輸出附帶高亮顏色的博文: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
的功能還不錯, 推薦了幾個簡單的功能, 讓你不須要查看大量的官方文檔再去評估這個工具的優缺點。
今天的你進步了嗎?