Python 自带的格式输出可以输出不带颜色的纯文本,如果有颜色需求可以使用第三方工具库。
今天介绍的是一款轻量级的输出库,库名为 wasabi 。
Github 项目地址:
https://github.com/ines/wasabi
PyPI 包的地址:
https://pypi.org/project/wasabi
之所以说是一款轻量级的颜色输出库,是因为它的功能不像其它库复杂,只提供最简单的颜色输出。例子:

安装:
pip install wasabi
Demo代码:
from wasabi import Printermsg = Printer()msg.divider("A headline")msg.good("This is a success message")msg.fail("This is a error message")msg.warn("This is a warning message")msg.info("This is a info message")print("This is a regular text")
测试发现,这套库只支持 Linux 的 console,在 cmd 或 powershell 下执行会输出颜色代码,类似这种:

它的内部实现还是使用的 linux 的颜色字符前缀,在 windows 的终端下不支持颜色输出。
wasabi 实现了一个 Printer 的类,在类下面定义的四个用于颜色输出的方法,分别用于四种告警场景:
good()
fail()
warn()
info()
同时 Printer 类下面还有一个属性 counts 用来存储各种告警的数量,当需要统计告警信息时会比较有用。
>>> msg.countsCounter({'good': 1, 'fail': 1, 'warn': 1, 'info': 1})
Printer 可以在需要时关闭颜色输出,甚至不输出,这在需要禁用调试信息时比较有用,所用到的属性为:
show_color 默认值为True,False 表示关闭颜色开关
no_print 默认值为False, True 表示不打印,函数返回字符串
>>> from wasabi import Printer>>> msg = Printer()>>> msg.show_colorTrue>>> msg.good('hello')✔ hello>>> msg.no_printFalse>>> msg.no_print = True>>> msg.good('hello')'\x1b[38;5;2m✔ hello\x1b[0m'
这两个属性在调试程序时会非常有用,当不需要颜色输出时,将show_color设置为False,此时输出的就是纯文本。当需要禁用调试信息时,可以将 no_print 设置为 True,此时将关闭输出,屏幕将变得非常简洁。
除了这款轻量级的颜色库,如果想尝试更复杂的颜色工具库,相似的项目还有:
https://pypi.org/project/colored/
https://github.com/kennethreitz/crayons
https://github.com/timofurrer/colorful
https://bitbucket.org/astanin/python-tabulate
https://github.com/mixmastamyk/console
https://github.com/gravmatt/py-term
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。




