python终端彩色输出

135 阅读1分钟
print("\033[1;30;43m color!!! \033[0m\n");

分成几段就是

\033[x:xx:xxm 这是文字 \033[0m

颜色的控制通过ESC字符(\033)加”[“加颜色代码加”m”实现。ESC的ASCII码是十进制的27,八进制的033(\033)。


\33[后面的1表示加黑文字,常用的如下


0 终端默认设置(黑底白字)
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见


各个控制段用分号;隔开


30是文字颜色


43是背景颜色

m表示颜色设置结束

python 函数实现

def set_color(log, color, highlight=True):
    # 3开头表示文字颜色,4开头表示背景颜色
    color_set = ["black", "red", "green", "yellow", "blue", "pink", "cyan", "white"]
    try:
        index = color_set.index(color)
    except:
        index = len(color_set) - 1
    prev_log = "\033["
    if highlight:   # 加粗
        prev_log += "1;3"
    else:
        prev_log += "0;3"
    prev_log += str(index) + "m"
    return prev_log + log + "\033[0m"