python在終端輸出有顏色字符串
python程序在終端里print輸出的內(nèi)容,都是黑底白色的文字,看久了不免乏味枯燥。有一些庫支持在終端,例如CMD里輸出有顏色的字符串,我一直很好奇他們是怎么實現(xiàn)的,今天研究了一下,發(fā)現(xiàn)很簡單。
想要在終端里輸出有顏色的文字,需要使用ANSI顏色轉(zhuǎn)義,NSI顏色轉(zhuǎn)義集合是選擇圖形渲染的子集,轉(zhuǎn)義的形式如下
\033[XXXm
它總是以\0033[開頭,以小寫m結(jié)尾,中間的XXX是一系列用分號分隔的參數(shù),主要的參數(shù)定義如下

只要能構(gòu)造出符合格式要求的字符串,就可以在終端里輸出有顏色的字體,下面是幾個具體的例子
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 分別代表紅色,綠色,黃色,藍(lán)色,5表示閃爍,在CMD里不能閃爍,因為不支持,0表示恢復(fù)原始設(shè)置,如果不加\033[0m這段,程序里后續(xù)的輸出會遵照前面的設(shè)置進(jìn)行輸出。
如果你使用的pycharm比較新,它已經(jīng)支持了ANSI顏色轉(zhuǎn)義,在CMD窗口里,必須執(zhí)行os.system("")這行神奇的代碼,才能正常顯示。
評論
圖片
表情
