参考文章
Python实现设置终端显示颜色、粗体、下划线等效果_CHENG Jian的博客-CSDN博客 本文使用python3以及完善
说明
#显示方式 意义
-------------------------------------------------
0 || "0" || mormal 终端默认设置
1 || "1" || bold 高亮显示
4 || "4" || underline 使用下划线
5 || "5" || blink 闪烁
7 || "7" || invert 反白显示
8 || "8" || hide 不可见
#前景色 颜色 背景色
---------------------------------------------------------------------
30 || "30" || black 黑色 40 || "40" || black
31 || "31" || red 红色 41 || "41" || red
32 || "32" || green 绿色 42 || "42" || green
33 || "33" || yellow 黃色 43 || "43" || yellow
34 || "34" || blue 蓝色 44 || "44" || blue
35 || "35" || purple 紫红色 45 || "45" || purple
36 || "36" || cyan 青蓝色 46 || "46" || cyan
37 || "37" || white 灰白色 47 || "47" || white
原理
格式:\033[显示方式;前景色;背景色m
例子:
# \033[1;31;40m <!--1-高亮显示 31-前景色红色 40-背景色黑色
# \033[0m <!--采用终端默认设置,即取消颜色设置
print("\033[1;31;40m你好\033[0m")
# 输出加粗(高亮)的、字体颜色为红色的、背景为黑色的文本“你好”
构造轮子(函数)
定义STYLE字典
包含mode(显示模式)、fore(前景颜色/字体颜色)、back(背景颜色)
STYLE = {
'mode':
{ # 显示模式
"": 0,
'mormal': 0, # 终端默认设置
"0": 0,
0: 0,
'bold': 1, # 高亮显示
"1": 1,
1: 1,
'underline': 4, # 使用下划线
"4": 4,
4: 4,
'blink': 5, # 闪烁
"5": 5,
5: 5,
'invert': 7, # 反白显示
"7": 7,
7: 7,
'hide': 8, # 不可见
"8": 8,
8: 8,
},
'fore':
{ # 前景色
'': '', # 默认字体颜色
'black': 30, # 黑色
"30": 30,
30: 30,
'red': 31, # 红色
"31": 31,
31: 31,
'green': 32, # 绿色
"32": 32,
32: 33,
'yellow': 33, # 黄色
"33": 33,
33: 33,
'blue': 34, # 蓝色
"34": 34,
34: 34,
'purple': 35, # 紫红色
"35": 35,
35: 35,
'cyan': 36, # 青蓝色
"36": 36,
36: 36,
'white': 37, # 灰白色
'37': 37,
37: 37,
},
'back':
{ # 背景
'': 40, # 默认背景黑色
'black': 40, # 黑色
"40": 40,
40: 40,
'red': 41, # 红色
"41": 41,
41: 41,
'green': 42, # 绿色
"42": 42,
42:42,
'yellow': 43, # 黄色
"43": 43,
43:43,
'blue': 44, # 蓝色
"44": 44,
44:44,
'purple': 45, # 紫红色
"45": 45,
45:45,
'cyan': 46, # 青蓝色
"46": 46,
46:46,
'white': 47, # 灰白色
"47": 47,
47:47,
},
'default':
{
'end': 0,
},
}
构造函数UseStyle()
def UseStyle(string, mode='', fore='', back=''):
"""
:param string: 字符串
:param mode: 显示方式
:param fore: 前景色
:param back: 背景色
:return: 使用colorstyle后的string
"""
mode = '%s' % STYLE['mode'][mode] if STYLE['mode'][mode] else ''
fore = '%s' % STYLE['fore'][fore] if STYLE['fore'][fore] else ''
back = '%s' % STYLE['back'][back] if STYLE['back'][back] else ''
style = ';'.join([s for s in [mode, fore, back] if s])
style = '\033[%sm' % style if style else ''
end = '\033[%sm' % STYLE['default']['end'] if style else ''
return '%s%s%s' % (style, string, end)
使用构造函数UseStyle()
for i in [0, 1, 4, 5, 7, 8]:
for j in range(30, 38):
for k in range(40, 48):
print(UseStyle(f"{i} {j} {k}", mode=i, fore=j, back=k), end=' ')
print(" ")