- #! /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__':
- 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'))
- #该片段来自于http://www.codesnippet.cn/detail/1509201410379.html
来源: http://www.codesnippet.cn/detail/1509201410379.html