Console font

介绍

控制台的字体样式、颜色是可控制的,具体的描述可以参考:
ANSI escape code
ANSI Escape Sequences

code

ESC 在ASCII字表里是 \033,其使用的格式一般是 \033[显示方式;前景色;背景色m

显示方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
00 或 0 正常显示 
01 或 1 粗体
02 或 2 模糊
03 或 3 斜体
04 或 4 下划线
05 或 5 闪烁(慢)
06 或 6 闪烁(快)
07 或 7 反转显示(前景色与背景色调过来)
08 或 8 隐藏
22 正常
23 不斜体
24 无下划线
25 不闪烁
27 不反转
28 不隐藏

前景色

1
2
3
4
5
6
7
8
9
10
30 黑色 
31 红色
32 绿色
33 黄色
34 蓝色
35 品红/紫红
36 青色/蓝绿
37 白色
38 xterm-256 色
39 默认色

背景色

1
2
3
4
5
6
7
8
9
10
40 黑色 
41 红色
42 绿色
43 黄色
44 蓝色
45 品红/紫红
46 青色/蓝绿
47 白色
48 xterm-256 色
49 默认色

\033[00;39;49m 常放到后面用于清除前面的设置

python 使用

在一些 python 脚本中常常会用到输出,写一个常用的类
printer.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class Printer(object):
DM = {‘default’: ‘00’,
‘bold’: ‘01’,
‘italic’: ‘03’,
‘underline’: ‘04’}
FG = {‘default’: ‘39’,
‘black’: ‘30’,
‘red’: ‘31’,
‘green’: ‘32’,
‘yellow’: ‘33’,
‘blue’: ‘34’,
‘white’: ‘37’}
BG = {‘default’: ‘49’,
‘black’: ‘40’,
‘red’: ‘41’,
‘green’: ‘42’,
‘yellow’: ‘43’,
‘blue’: ‘44’,
‘white’: ‘47’}
DEFAULT = ‘\033[00;39;49m’
CUSTOM = ‘\033[{0};{1};{2}m’

def init(self):
self.map = {}
for dier in dir(self):
if ‘custom’ in dier:
lev = getattr(self, dier)
self.map[lev[0]] = lev[1]

custom_info = (0, CUSTOM.format(DM[‘default’], FG[‘default’], BG[‘default’]))
custom_success = (1, CUSTOM.format(DM[‘underline’], FG[‘default’], BG[‘green’]))
custom_warn = (2, CUSTOM.format(DM[‘default’], FG[‘red’], BG[‘default’]))
custom_error = (3, CUSTOM.format(DM[‘bold’], FG[‘red’], BG[‘default’]))


def printer(mode, chs):
p = Printer()
style = p.map[mode]
print ‘%s%s%s’ % (style, chs, p.DEFAULT)


if name == ‘main‘:
printer(0, “info…”)
printer(1, “success…”)
printer(2, “warn…”)
printer(3, “error…”)

效果如下:
result