python 命令行颜色

#coding=utf-8
import ctypes,sys
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE = -11
STD_ERROR_HANDLE = -12
def printRed(mess):
    set_cmd_text_color(FOREGROUND_RED)
    sys.stdout.write(mess)
    resetColor()

# Windows CMD命令行 字体颜色定义 text colors
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_WHITE = 0xf0 # white.
# 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)
 
if __name__ == '__main__':
    
    printRed('asdasd')

 

转载于:https://www.cnblogs.com/crac/p/9577173.html

### 实现Python中的彩色命令行输出 #### 使用 `colorama` 库实现跨平台兼容的彩色输出 为了确保在不同操作系统上都能正常显示彩色文本,推荐使用 `colorama` 库。该库能够处理Windows系统的特殊需求并提供简单的API接口来改变文字的颜色。 安装此库可以通过pip工具完成: ```bash pip install colorama ``` 下面是一个利用 `colorama` 进行基本颜色设置的例子[^3]: ```python from colorama import init, Fore, Back, Style init() # 初始化Colorama print(Fore.RED + '红色的文字' + Style.RESET_ALL) print(Back.GREEN + '绿色背景的文字' + Style.RESET_ALL) print(Fore.BLUE + Back.YELLOW + '蓝字黄底的效果' + Style.RESET_ALL) # 输出重置回默认样式 print('恢复到正常的字体') ``` 这段代码展示了怎样通过组合不同的前景色(`Fore`)和背景色(`Back`)属性创建多彩效果,并最终调用 `Style.RESET_ALL` 来清除所有的格式化选项以便后续的标准输出不受影响。 #### 利用ANSI转义序列直接操作终端 对于支持ANSI标准的环境(大多数现代Linux发行版以及macOS),可以直接发送特定编码字符串给终端解释器以更改当前会话内的文本外观。这种方式不需要额外依赖第三方软件包,但是不具备良好的跨平台特性,在某些旧版本或非Unix类系统上的表现可能不稳定[^2]。 一个典型的例子如下所示: ```python def print_with_color(text, fg=None, bg=None): colors = { "black": "\033[30m", "red": "\033[31m", "green": "\033[32m", "yellow": "\033[33m", "blue": "\033[34m", "purple": "\033[35m", "cyan": "\033[36m", "white": "\033[37m" } backgrounds = {k:v.replace('[3','[4') for k,v in colors.items()} reset = '\033[0m' formatted_text = '' if fg and fg.lower() in colors: formatted_text += colors[fg.lower()] if bg and bg.lower() in backgrounds: formatted_text += backgrounds[bg.lower()] formatted_text += text + reset print(formatted_text) print_with_color("这是红色文字.", fg="red") print_with_color("这是带有蓝色背景的文字.", bg="blue") print_with_color("这是紫色文字加青色背景.", fg="purple", bg="cyan") ``` 上述函数接受两个参数分别指定前景色(fg)与背景色(bg),并通过查找预定义映射表得到相应的控制字符串;最后加上结束符 `\033[0m` 确保之后的内容恢复正常样式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值