美文网首页
python 积累 - print输出有颜色的字体

python 积累 - print输出有颜色的字体

作者: 许忠慧 | 来源:发表于2020-09-15 18:18 被阅读0次

一、 windows下cmd输出有颜色的字体:

import ctypes

# Windows CMD命令行 字体颜色定义 text colors
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE= -11
STD_ERROR_HANDLE = -12
FOREGROUND_BLACK = 0x00 # black.
FOREGROUND_DARKBLUE = 0x01 # dark blue. 暗蓝色
FOREGROUND_DARKGREEN = 0x02 # dark green.   暗绿色
FOREGROUND_DARKSKYBLUE = 0x03 # dark skyblue. 暗天蓝色
FOREGROUND_DARKRED = 0x04 # dark red.   暗红色
FOREGROUND_DARKPINK = 0x05 # dark pink. 暗粉红色
FOREGROUND_DARKYELLOW = 0x06 # dark yellow. 暗黄色
FOREGROUND_DARKWHITE = 0x07 # dark white. 暗白色
FOREGROUND_DARKGRAY = 0x08 # dark gray. 暗灰色
FOREGROUND_BLUE = 0x09 # blue.
FOREGROUND_GREEN = 0x0a # green.
FOREGROUND_SKYBLUE = 0x0b # skyblue.
FOREGROUND_RED = 0x0c # red.
FOREGROUND_PINK = 0x0d # pink.
FOREGROUND_YELLOW = 0x0e # yellow.
FOREGROUND_WHITE = 0x0f # white.

# Windows CMD命令行 背景颜色定义 background colors
BACKGROUND_BLUE = 0x10 # dark blue.
BACKGROUND_GREEN = 0x20 # dark green.
BACKGROUND_DARKSKYBLUE = 0x30 # dark skyblue.
BACKGROUND_DARKRED = 0x40 # dark red.
BACKGROUND_DARKPINK = 0x50 # dark pink.
BACKGROUND_DARKYELLOW = 0x60 # dark yellow.
BACKGROUND_DARKWHITE = 0x70 # dark white.
BACKGROUND_DARKGRAY = 0x80 # dark gray.
BACKGROUND_BLUE = 0x90 # blue.
BACKGROUND_GREEN = 0xa0 # green.
BACKGROUND_SKYBLUE = 0xb0 # skyblue.
BACKGROUND_RED = 0xc0 # red.
BACKGROUND_PINK = 0xd0 # pink.
BACKGROUND_YELLOW = 0xe0 # yellow.
BACKGROUND_WHITE = 0xf0 # white.


class winColor:
    std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
    # 设置字体颜色的代码
    def set_cmd_color(self, color, handle=std_out_handle):
        bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
        return bool
    # 颜色重置
    def reset_color(self):
        self.set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)

    # 红色
    def print_red_text(self, print_text):
        self.set_cmd_color(FOREGROUND_RED)
        print(print_text)
        self.reset_color()

    # 绿色
    def print_green_text(self, print_text):
        self.set_cmd_color(FOREGROUND_GREEN)
        print(print_text)
        self.reset_color()

    # 暗蓝色
    def printDarkBlue(self, print_text):
        self.set_cmd_color(FOREGROUND_DARKBLUE)
        print(print_text)
        self.reset_color()

    # 白底黑字
    def printWhiteBlack(self, print_text):
        self.set_cmd_color(FOREGROUND_BLACK | BACKGROUND_WHITE)
        print(print_text)
        self.reset_color()     

    # 黄底蓝字
    def printYellowRed(self, print_text):
        self.set_cmd_color(BACKGROUND_YELLOW | FOREGROUND_RED)
        print(print_text)
        self.reset_color()

'''
根据需求自己定义其他颜色输出函数即可
'''

测试一下效果:

winColor().print_red_text("测试红色字体\n") 
winColor().print_green_text("测试红色字体\n") 
winColor().printDarkBlue("测试暗蓝色字体\n\n\n") 

winColor().printWhiteBlack("测试白底黑字\n") 
winColor().printYellowRed("测试黄底蓝字\n")  
cmd字体颜色效果图

二、 linux下输出有颜色的字体

需要注意的是,这只能在linux中使用,但是在windows中使用不会报错

# 各种字体颜色
print("灰白色","\033[29;1m  hello  \033[0m")
print("白色","\033[30;1m  hello  \033[0m")
print("红色","\033[31;1m  hello  \033[0m")
print("黄绿色","\033[32;1m  hello  \033[0m")
print("土黄色","\033[33;1m  hello  \033[0m")
print("蓝色","\033[34;1m  hello  \033[0m")
print("紫色","\033[35;1m  hello  \033[0m")
print("绿色","\033[36;1m  hello  \033[0m")
print("灰色","\033[37;1m  hello  \033[0m")

# 各种背景颜色
print("背景白色:","\033[40;1m    hello  \033[0m")
print("背景红色:","\033[41;1m    hello  \033[0m")
print("背景黄绿色:","\033[42;1m  hello  \033[0m")
print("背景土黄色:","\033[43;1m  hello  \033[0m")
print("背景蓝色:","\033[44;1m    hello  \033[0m")
print("背景紫色:","\033[45;1m    hello  \033[0m")
print("背景深绿色:","\033[46;1m  hello  \033[0m")
print("背景灰色:","\033[47;1m    hello  \033[0m")
'''
注意这是python3的写法
'''

效果图:


mac控制台颜色输出

相关文章

网友评论

      本文标题:python 积累 - print输出有颜色的字体

      本文链接:https://www.haomeiwen.com/subject/zvyfyktx.html