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
000 正常显示 
011 粗体
022 模糊
033 斜体
044 下划线
055 闪烁(慢)
066 闪烁(快)
077 反转显示(前景色与背景色调过来)
088 隐藏
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