Python控制台输出彩色字体的实现方法

周叙
周叙
发布时间:2026-10-13| 3人浏览过
原创

本文介绍如何在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控制台彩色字体输出的完整实现内容,希望能为您的学习提供便利。如果您觉得有用,欢迎继续支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。