在控制台列印時添加顔色資訊,可以更清晰的展示和區分内容。例如重要的資訊可以加加粗和下劃線,error資訊可以用紅色下劃線表示。本文介紹如何用python在控制台列印添加顔色、下劃線、高亮等使得展示的資訊更加清晰直覺。例如:
在python控制台列印帶有顔色、特殊顯示方式的字元串,其主要原理是用特殊的字元來标記展示形式:
格式:\033[顯示方式;前景色;背景色m要列印的字元串\033[0m
前景色 | 背景色 | 顔色 |
---|---|---|
30 | 40 | 黑色 |
31 | 41 | 紅色 |
32 | 42 | 綠色 |
33 | 43 | 黃色 |
34 | 44 | 藍色 |
35 | 45 | 紫紅色 |
36 | 46 | 青藍色 |
37 | 47 | 白色 |
顯示方式 | 意義 |
---|---|
終端預設設定 | |
1 | 高亮顯示 |
4 | 使用下劃線 |
5 | 閃爍 |
7 | 反白顯示 |
8 | 不可見 |
可以代碼封裝成一個函數來調用:
ANSI_BLACK =
ANSI_RED =
ANSI_GREEN =
ANSI_YELLOW =
ANSI_BLUE =
ANSI_PURPLE =
ANSI_CYAN =
ANSI_WHITE =
ANSI_BLACK_BACKGROUND =
ANSI_RED_BACKGROUND =
ANSI_GREEN_BACKGROUND =
ANSI_YELLOW_BACKGROUND =
ANSI_BLUE_BACKGROUND =
ANSI_PURPLE_BACKGROUND =
ANSI_CYAN_BACKGROUND =
ANSI_WHITE_BACKGROUND =
MOD_DEFAULT =
MOD_HIGHLIGHT =
MOD_UNDERLINE =
MOD_FLICKER =
MOD_INVERSE =
MOD_HIDE =
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)