首页 > 代码库 > 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 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

print dir(ctypes.windll)

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‘))

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