Python控制台输出彩色字体的实现方法
本文介绍如何在Python中通过ctypes模块调用Windows API实现控制台彩色文字输出。提供了设置前景色、背景色及重置颜色的完整代码示例,并演示了红、绿、黄等颜色的具体用法。需注意该方案在IDE中可能无效,但在原生CMD和Linux终端中显示正常。
Python控制台彩色字体实现概述
在Python开发中,有时需要在控制台输出带有颜色的文字以增强可读性。以下是一个具体的实现方案,供开发者参考。

核心代码实现与颜色定义
import ctypes, sys
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE = -11
STD_ERROR_HANDLE = -12
# 字体颜色定义 text colors
FOREGROUND_BLUE = 0x09 # blue.
FOREGROUND_GREEN = 0x0a # green.
FOREGROUND_RED = 0x0c # red.
FOREGROUND_YELLOW = 0x0e # yellow.
# 背景颜色定义 background colors
BACKGROUND_YELLOW = 0xe0 # yellow.
# get handle
std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
def set_cmd_text_color(color, handle=std_out_handle):
Bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
return Bool
# reset white
def resetColor():
set_cmd_text_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)
# green
def printGreen(mess):
set_cmd_text_color(FOREGROUND_GREEN)
sys.stdout.write(mess + '\n')
resetColor()
# red
def printRed(mess):
set_cmd_text_color(FOREGROUND_RED)
sys.stdout.write(mess + '\n')
resetColor()
# yellow
def printYellow(mess):
set_cmd_text_color(FOREGROUND_YELLOW)
sys.stdout.write(mess + '\n')
resetColor()
# white bkground and black text
def printYellowRed(mess):
set_cmd_text_color(BACKGROUND_YELLOW | FOREGROUND_RED)
sys.stdout.write(mess + '\n')
resetColor()
首先,我们需要利用ctypes模块与Windows内核API进行交互,从而控制控制台文本的属性。
基础颜色输出示例
printGreen("你好,世界!")
为了便于直接使用,这里提供完整的图形化代码示例,方便开发者直接复制应用。
复杂图形与背景色应用
replyContent = u''''
_
(\\ _ ___
.-"`"(\\ _.""` `"-.
/ ` `-._ _.-" `\__
6 6) `-.__.-' `",
/ `;-`
/ , |
() / /` |
`---`"~``\ |
\ |
\ \ / /
/`, , | | /
/ "-.| | | /'
/ / | /,__ | /`\
ljs / /' | / `"'\ ( \
__/ /' | | `\ \ \
\ / | | `\ \ \
`-,/ / | / |-"`
`"""^^^ `^^""""`
------------------------------------------------'''
printGreen(replyContent)
环境兼容性与注意事项
需要注意的是,该彩色输出功能依赖于原生控制台环境。在IntelliJ IDEA等集成开发环境中,彩色效果可能无法显示;但在Windows CMD命令行或Linux终端中,均能正常渲染为彩色字体。
以上就是Python控制台彩色字体输出的完整实现内容,希望能为您的学习提供便利。如果您觉得有用,欢迎继续支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









