天天看點

python控制台顔色列印

在控制台列印時添加顔色資訊,可以更清晰的展示和區分内容。例如重要的資訊可以加加粗和下劃線,error資訊可以用紅色下劃線表示。本文介紹如何用python在控制台列印添加顔色、下劃線、高亮等使得展示的資訊更加清晰直覺。例如:
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)
           
python控制台顔色列印