在控制台打印时添加颜色信息,可以更清晰的展示和区分内容。例如重要的信息可以加加粗和下划线,error信息可以用红色下划线表示。本文介绍如何用python在控制台打印添加颜色、下划线、高亮等使得展示的信息更加清晰直观。例如:
在python控制台打印带有颜色、特殊显示方式的字符串,其主要原理是用特殊的字符来标记展示形式:
格式:\033[显示方式;前景色;背景色m要打印的字符串\033[0m
前景色 | 背景色 | 颜色 |
---|---|---|
30 | 40 | 黑色 |
31 | 41 | 红色 |
32 | 42 | 绿色 |
33 | 43 | 黃色 |
34 | 44 | 蓝色 |
35 | 45 | 紫红色 |
36 | 46 | 青蓝色 |
37 | 47 | 白色 |
显示方式 | 意义 |
---|---|
0 | 终端默认设置 |
1 | 高亮显示 |
4 | 使用下划线 |
5 | 闪烁 |
7 | 反白显示 |
8 | 不可见 |
可以代码封装成一个函数来调用:
ANSI_BLACK = 30
ANSI_RED = 31
ANSI_GREEN = 32
ANSI_YELLOW = 33
ANSI_BLUE = 34
ANSI_PURPLE = 35
ANSI_CYAN = 36
ANSI_WHITE = 37
ANSI_BLACK_BACKGROUND = 40
ANSI_RED_BACKGROUND = 41
ANSI_GREEN_BACKGROUND = 42
ANSI_YELLOW_BACKGROUND = 43
ANSI_BLUE_BACKGROUND = 44
ANSI_PURPLE_BACKGROUND = 45
ANSI_CYAN_BACKGROUND = 46
ANSI_WHITE_BACKGROUND = 47
MOD_DEFAULT = 0
MOD_HIGHLIGHT = 1
MOD_UNDERLINE = 4
MOD_FLICKER = 5
MOD_INVERSE = 7
MOD_HIDE = 8
def mod_print(message, fg=ANSI_WHITE, bg=ANSI_BLACK_BACKGROUND, mod=MOD_DEFAULT):
"""
格式化输出
:param message:
:param fg:
:param bg:
:param mod:
:return:
"""
print('\033[{};{};{}m'.format(fg, bg, mod) + message + '\033[0m')
现在调用上面这个函数来测试一下显示效果:
mod_print("python colorful print", ANSI_GREEN, ANSI_BLACK_BACKGROUND, MOD_UNDERLINE)
mod_print("python colorful print", ANSI_RED, ANSI_WHITE_BACKGROUND, MOD_UNDERLINE)
mod_print("python colorful print", ANSI_YELLOW, ANSI_BLACK_BACKGROUND, MOD_HIGHLIGHT)
mod_print("python colorful print", ANSI_YELLOW, ANSI_BLACK_BACKGROUND, MOD_UNDERLINE)