Python实现Windows CMD命令行彩色输出

#! /usr/bin/env python

#coding=utf-8

import ctypes,sys

STD_INPUT_HANDLE = -10

STD_OUTPUT_HANDLE = -11

STD_ERROR_HANDLE = -12

# 字体颜色定义 ,关键在于颜色编码,由2位十六进制组成,分别取0~f,前一位指的是背景色,后一位指的是字体色

#由于该函数的限制,应该是只有这16种,可以前景色与背景色组合。也可以几种颜色通过或运算组合,组合后还是在这16种颜色中

# 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_YELLOW = 0xe0 # yellow.

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)

###############################################################

#暗蓝色

#dark blue

def printDarkBlue(mess):

    set_cmd_text_color(FOREGROUND_DARKBLUE)

    sys.stdout.write(mess)

    resetColor()

#暗绿色

#dark green

def printDarkGreen(mess):

    set_cmd_text_color(FOREGROUND_DARKGREEN)

    sys.stdout.write(mess)

    resetColor()

#暗天蓝色

#dark sky blue

def printDarkSkyBlue(mess):

    set_cmd_text_color(FOREGROUND_DARKSKYBLUE)

    sys.stdout.write(mess)

    resetColor()

#暗红色

#dark red

def printDarkRed(mess):

    set_cmd_text_color(FOREGROUND_DARKRED)

    sys.stdout.write(mess)

    resetColor()

#暗粉红色

#dark pink

def printDarkPink(mess):

    set_cmd_text_color(FOREGROUND_DARKPINK)

    sys.stdout.write(mess)

    resetColor()

#暗黄色

#dark yellow

def printDarkYellow(mess):

    set_cmd_text_color(FOREGROUND_DARKYELLOW)

    sys.stdout.write(mess)

    resetColor()

#暗白色

#dark white

def printDarkWhite(mess):

    set_cmd_text_color(FOREGROUND_DARKWHITE)

    sys.stdout.write(mess)

    resetColor()

#暗灰色

#dark gray

def printDarkGray(mess):

    set_cmd_text_color(FOREGROUND_DARKGRAY)

    sys.stdout.write(mess)

    resetColor()

#蓝色

#blue

def printBlue(mess):

    set_cmd_text_color(FOREGROUND_BLUE)

    sys.stdout.write(mess)

    resetColor()

#绿色

#green

def printGreen(mess):

    set_cmd_text_color(FOREGROUND_GREEN)

    sys.stdout.write(mess)

    resetColor()

#天蓝色

#sky blue

def printSkyBlue(mess):

    set_cmd_text_color(FOREGROUND_SKYBLUE)

    sys.stdout.write(mess)

    resetColor()

#红色

#red

def printRed(mess):

    set_cmd_text_color(FOREGROUND_RED)

    sys.stdout.write(mess)

    resetColor()

#粉红色

#pink

def printPink(mess):

    set_cmd_text_color(FOREGROUND_PINK)

    sys.stdout.write(mess)

    resetColor()

#黄色

#yellow

def printYellow(mess):

    set_cmd_text_color(FOREGROUND_YELLOW)

    sys.stdout.write(mess)

    resetColor()

#白色

#white

def printWhite(mess):

    set_cmd_text_color(FOREGROUND_WHITE)

    sys.stdout.write(mess)

    resetColor()

##################################################

#白底黑字

#white bkground and black text

def printWhiteBlack(mess):

    set_cmd_text_color(FOREGROUND_BLACK | BACKGROUND_WHITE)

    sys.stdout.write(mess)

    resetColor()

#白底黑字

#white bkground and black text

def printWhiteBlack_2(mess):

    set_cmd_text_color(0xf0)

    sys.stdout.write(mess)

    resetColor()

#黄底蓝字

#white bkground and black text

def printYellowRed(mess):

    set_cmd_text_color(BACKGROUND_YELLOW | FOREGROUND_RED)

    sys.stdout.write(mess)

    resetColor()

##############################################################

if __name__ == ‘__main__‘:

    

    print

    printDarkBlue(u‘printDarkBlue:暗蓝色文字\n‘.encode(‘gb2312‘))

    printDarkGreen(u‘printDarkGreen:暗绿色文字\n‘.encode(‘gb2312‘))

    printDarkSkyBlue(u‘printDarkSkyBlue:暗天蓝色文字\n‘.encode(‘gb2312‘))

    printDarkRed(u‘printDarkRed:暗红色文字\n‘.encode(‘gb2312‘))

    printDarkPink(u‘printDarkPink:暗粉红色文字\n‘.encode(‘gb2312‘))

    printDarkYellow(u‘printDarkYellow:暗黄色文字\n‘.encode(‘gb2312‘))

    printDarkWhite(u‘printDarkWhite:暗白色文字\n‘.encode(‘gb2312‘))

    printDarkGray(u‘printDarkGray:暗灰色文字\n‘.encode(‘gb2312‘))

    printBlue(u‘printBlue:蓝色文字\n‘.encode(‘gb2312‘))

    printGreen(u‘printGreen:绿色文字\n‘.encode(‘gb2312‘))

    printSkyBlue(u‘printSkyBlue:天蓝色文字\n‘.encode(‘gb2312‘))

    printRed(u‘printRed:红色文字\n‘.encode(‘gb2312‘))

    printPink(u‘printPink:粉红色文字\n‘.encode(‘gb2312‘))

    printYellow(u‘printYellow:黄色文字\n‘.encode(‘gb2312‘))

    printWhite(u‘printWhite:白色文字\n‘.encode(‘gb2312‘))

    

    printWhiteBlack(u‘printWhiteBlack:白底黑字输出\n‘.encode(‘gb2312‘))

    printWhiteBlack_2(u‘printWhiteBlack_2:白底黑字输出(直接传入16进制参数)\n‘.encode(‘gb2312‘))

    printYellowRed(u‘printYellowRed:黄底红字输出\n‘.encode(‘gb2312‘))

时间: 2024-10-20 07:10:09

Python实现Windows CMD命令行彩色输出的相关文章

Python实现Windows CMD命令行彩色输出(由网友提供)

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' import ctypes,sys STD_INPUT_HANDLE=-10 STD_OUTPUT_HANDLE=-11 STD_ERRIR_HANDLE=-12 #定义字体颜色,由于颜色编码,是由2位十六进制组成,分别娶0~f,前一位是指背景色,后一位是字体色 #因为由于函数限制,只有16种颜色,可以进行把前和后景色组合,也可以把其他颜色混合 # Windows 

如何让Qt程序能在cmd命令行下输出qDebug信息

若让Qt程序能在cmd命令行下输出qDebug()信息, 则在pro文件中增加: WIN32: CONFIG += console 即可. 启动qt程序时会弹出一个cmd框和一个ui框,就可以看到调试信息了.

windows cmd命令行命令

http://blog.csdn.net/pipisorry/article/details/46124995 将下面的命令保存在filename.bat文件中直接点击就可以在windows下直接运行了 合并文件 C:\Users\Administrator\Desktop dir copy *.txt all.txt #pause 取某个文件夹下所有文件的文件名 @echo off dir C:\Users\Administrator\Desktop\ccf\photo *.* > 文件名.t

python 控制 cmd 命令行颜色

基于win7 + python3.4 import ctypes import sys '''Windows CMD命令行颜色''' # 句柄号 STD_INPUT_HANDLE = -10 STD_OUTPUT_HANDLE= -11 STD_ERROR_HANDLE = -12 # 前景色 FOREGROUND_BLACK = 0x0 # 黑 FOREGROUND_BLUE = 0x01 # 蓝 FOREGROUND_GREEN = 0x02 # 绿 FOREGROUND_RED = 0x0

DSAPI CMD命令行进程代理

DSAPI.文件.CMD命令行进程代理,是用来和CMD.exe或指定exe进行输出重定向的简化使用工具,可隐藏或显式地启动一个cmd.exe,并将输出流.输入流和错误流重定向至代理,通过事件触发方式与之交互. 相关代码如下: Private WithEvents CMD命令行 As New DSAPI.文件.CMD命令行进程代理 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click CM

Python安装后在CMD命令行下出现“应用程序无法启动.............”问题

问题存在之一:系统是刚刚重做的精简版服务器系统(阉割版) AN就是在阿里云上刚开的Windows Server 2008 系统上碰到的  吓尿了都 症状:            正常安装python环境后 进入cmd命令行中,执行python就报错,报错的大概内容就是 “应用程序无法启动....因为并行配置不正确...请执行....exe文件”  PS:卧槽,记不清了, 错误截图 也找不到了 下药:          1.面对CMD命令行报错,代开事件查看器 可以通过控制面板打开,也可以在cmd

cmd命令行中logcat输出日志中文乱码

在命令行使用adb logcat命令直接输出日志中文内容显示乱码,原因是中文系统中cmd命令行窗口默认的编码是GBK,而LogCat打印的日志是UTF-8编码,所以adb logcat命令输出的中文内容显示乱码. 修改cmd命令行窗口字符编码即可解决logcat日志中文显示乱码问题: 1.cmd命令行窗口字符编码切换为UTF-8,命令行中执行:chcp 65001 2.修改cmd窗口字体属性,在命令行标题栏上点击右键,选择”属性”->”字体”,将字体修改为”Lucida Console”,点击确

Windows 如何在cmd命令行中查看、修改、删除与添加环境变量

转自:http://www.cnblogs.com/saptechnique/archive/2013/02/17/2914222.html 首先明确一点: 所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改.也就是说当关闭此cmd命令行窗口后,将不再起作用.永久性修改环境变量的方法有两种:一种是直接修改注册表(此种方法目前没试验过),另一种是通过我的电脑-〉属性-〉高级,来设置系统的环境变量(查看详细). 其次,明确一下环境变量的作用. 它是操作系统用来指定运行环境的一些

Windows下的cmd命令行中设置环境编码

我们都知道,Windows下的cmd命令行默认编码是Windows系统的编码,就是ANSI编码或者说是GBK编码的,这样我们编写的很多应用比如php编写utf-8编码的应用在命令行下面运行时都会出现乱码的情况,原因就是因为运行环境的编码使用自己的编码去解析程序运行结果,而程序本身返回编码和解析编码不一致,最后导致乱码情况的发生. 遇到这种情况,我们可以通过设置cmd命令行环境的编码使编码保持统一来解决,方法如下: 在命令行中,有个命令是chcp,这个命令是用来显示当前活动代码页编号的,也可以理解