python程序在终端里print输出的内容,都是黑底白色的文字,看久了不免乏味枯燥。有一些库支持在终端,例如CMD里输出有颜色的字符串,我一直很好奇他们是怎么实现的,今天研究了一下,发现很简单。
想要在终端里输出有颜色的文字,需要使用ANSI颜色转义,NSI颜色转义集合是选择图形渲染的子集,转义的形式如下
\033[XXXm
它总是以\0033[开头,以小写m结尾,中间的XXX是一系列用分号分隔的参数,主要的参数定义如下
只要能构造出符合格式要求的字符串,就可以在终端里输出有颜色的字体,下面是几个具体的例子
import os
os.system("")
print("\033[31;5m成功的消息\033[0m")
print("\033[32;5m失败的消息\033[0m")
print("\033[33;5m告警的消息\033[0m")
print("\033[34;5m普通消息")
实际效果如下图所示
31,32,33,34 分别代表红色,绿色,黄色,蓝色,5表示闪烁,在CMD里不能闪烁,因为不支持,0表示恢复原始设置,如果不加\033[0m这段,程序里后续的输出会遵照前面的设置进行输出。
如果你使用的pycharm比较新,它已经支持了ANSI颜色转义,在CMD窗口里,必须执行os.system("")这行神奇的代码,才能正常显示。
QQ交流群: 211426309