python在终端输出有颜色字符串

coolpython

共 690字,需浏览 2分钟

 ·

2021-03-29 15:59

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("")这行神奇的代码,才能正常显示。


浏览 45
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报