天天看点

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控制台颜色打印