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

摘要:
#
#! /usr/bin/env python
#coding=utf-8
 
importctypes,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)
 
defset_cmd_text_color(color, handle=std_out_handle):
    Bool=ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
    returnBool
 
#reset white
defresetColor():
    set_cmd_text_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)
 
###############################################################
 
#暗蓝色
#dark blue
defprintDarkBlue(mess):
    set_cmd_text_color(FOREGROUND_DARKBLUE)
    sys.stdout.write(mess)
    resetColor()
 
#暗绿色
#dark green
defprintDarkGreen(mess):
    set_cmd_text_color(FOREGROUND_DARKGREEN)
    sys.stdout.write(mess)
    resetColor()
 
#暗天蓝色
#dark sky blue
defprintDarkSkyBlue(mess):
    set_cmd_text_color(FOREGROUND_DARKSKYBLUE)
    sys.stdout.write(mess)
    resetColor()
 
#暗红色
#dark red
defprintDarkRed(mess):
    set_cmd_text_color(FOREGROUND_DARKRED)
    sys.stdout.write(mess)
    resetColor()
 
#暗粉红色
#dark pink
defprintDarkPink(mess):
    set_cmd_text_color(FOREGROUND_DARKPINK)
    sys.stdout.write(mess)
    resetColor()
 
#暗黄色
#dark yellow
defprintDarkYellow(mess):
    set_cmd_text_color(FOREGROUND_DARKYELLOW)
    sys.stdout.write(mess)
    resetColor()
 
#暗白色
#dark white
defprintDarkWhite(mess):
    set_cmd_text_color(FOREGROUND_DARKWHITE)
    sys.stdout.write(mess)
    resetColor()
 
#暗灰色
#dark gray
defprintDarkGray(mess):
    set_cmd_text_color(FOREGROUND_DARKGRAY)
    sys.stdout.write(mess)
    resetColor()
 
#蓝色
#blue
defprintBlue(mess):
    set_cmd_text_color(FOREGROUND_BLUE)
    sys.stdout.write(mess)
    resetColor()
 
#绿色
#green
defprintGreen(mess):
    set_cmd_text_color(FOREGROUND_GREEN)
    sys.stdout.write(mess)
    resetColor()
 
#天蓝色
#sky blue
defprintSkyBlue(mess):
    set_cmd_text_color(FOREGROUND_SKYBLUE)
    sys.stdout.write(mess)
    resetColor()
 
#红色
#red
defprintRed(mess):
    set_cmd_text_color(FOREGROUND_RED)
    sys.stdout.write(mess)
    resetColor()
 
#粉红色
#pink
defprintPink(mess):
    set_cmd_text_color(FOREGROUND_PINK)
    sys.stdout.write(mess)
    resetColor()
 
#黄色
#yellow
defprintYellow(mess):
    set_cmd_text_color(FOREGROUND_YELLOW)
    sys.stdout.write(mess)
    resetColor()
 
#白色
#white
defprintWhite(mess):
    set_cmd_text_color(FOREGROUND_WHITE)
    sys.stdout.write(mess)
    resetColor()
 
##################################################
 
#白底黑字
#white bkground and black text
defprintWhiteBlack(mess):
    set_cmd_text_color(FOREGROUND_BLACK | BACKGROUND_WHITE)
    sys.stdout.write(mess)
    resetColor()
 
#白底黑字
#white bkground and black text
defprintWhiteBlack_2(mess):
    set_cmd_text_color(0xf0)
    sys.stdout.write(mess)
    resetColor()
 
 
#黄底蓝字
#white bkground and black text
defprintYellowRed(mess):
    set_cmd_text_color(BACKGROUND_YELLOW | FOREGROUND_RED)
    sys.stdout.write(mess)
    resetColor()
 
 
##############################################################
 
if__name__ =='__main__':
     
    print
    printDarkBlue(u'printDarkBlue:暗蓝色文字 '.encode('gb2312'))
    printDarkGreen(u'printDarkGreen:暗绿色文字 '.encode('gb2312'))
    printDarkSkyBlue(u'printDarkSkyBlue:暗天蓝色文字 '.encode('gb2312'))
    printDarkRed(u'printDarkRed:暗红色文字 '.encode('gb2312'))
    printDarkPink(u'printDarkPink:暗粉红色文字 '.encode('gb2312'))
    printDarkYellow(u'printDarkYellow:暗黄色文字 '.encode('gb2312'))
    printDarkWhite(u'printDarkWhite:暗白色文字 '.encode('gb2312'))
    printDarkGray(u'printDarkGray:暗灰色文字 '.encode('gb2312'))
    printBlue(u'printBlue:蓝色文字 '.encode('gb2312'))
    printGreen(u'printGreen:绿色文字 '.encode('gb2312'))
    printSkyBlue(u'printSkyBlue:天蓝色文字 '.encode('gb2312'))
    printRed(u'printRed:红色文字 '.encode('gb2312'))
    printPink(u'printPink:粉红色文字 '.encode('gb2312'))
    printYellow(u'printYellow:黄色文字 '.encode('gb2312'))
    printWhite(u'printWhite:白色文字 '.encode('gb2312'))
     
    printWhiteBlack(u'printWhiteBlack:白底黑字输出 '.encode('gb2312'))
    printWhiteBlack_2(u'printWhiteBlack_2:白底黑字输出(直接传入16进制参数) '.encode('gb2312'))
    printYellowRed(u'printYellowRed:黄底红字输出 '.encode('gb2312'))

免责声明:文章转载自《Python实现Windows CMD命令行彩色输出》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PowerDesigner 12小技巧-pd小技巧-pd工具栏不见了-pd修改外键命名规则-pd添加外键kernel 目录 解析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

css边框内凹圆角,解决优惠券的边框问题

关于css边框内凹圆角,找了好久才找到的 <html <head> <title>无标题页</title> <style> body{ background:#999 } .raidal1 { height: 100px; 100px; backg...

font-family 字体及各大主流网站对比

@常用字体对应表: HTML,CSS,font-family:中文字体的英文名称 宋体 SimSun黑体 SimHei微软雅黑 Microsoft YaHei微软正黑体 Microsoft JhengHei新宋体 NSimSun新细明体 PMingLiU细明体 MingLiU标楷体 DFKai-SB仿宋 FangSong楷体 KaiTi仿宋_GB2312...

python 批量ping服务器

最近在https://pypi.python.org/pypi/mping/0.1.2找到了一个python包,可以用它来批量ping服务器,它是中国的大神写的,支持单个服务器、将服务器IP写在txt或json里都可以。 具体用法有中文文档,感谢作者youfou 这里我改了几个字,方便我这种英文不好的同学使用 mping.py #!/usr/bin/en...

关于圆角的实现以及鼠标移入显示二级菜单的兼容处理!

在这时碰到了一个圆角边框的问题,以前的代码是在每个页面写一个固定结构的div,使用背景图片来实现圆角边框。代码结构大致如下: .top_border{background:url(topborder.png);} .left_border{background:url(leftborder.png);} .right_border{background:u...

LESS 用法入门

本文旨在加深对 LESS 的理解和记忆,供自己开发时参考。相信对没有接触过 LESS 的程序员还是有用的,大佬绕路。 一、安装和使用 LESS 1.1 安装 使用命令行安装 LESS  npm install -g less 1.2 使用 less 有多种的使用方法,在这里我向大家介绍最常用的俩种方法。 第一种是直接在浏览器中使用: 去下载一个你要的le...

Python之pandas读取mysql中文乱码问题

# -*- coding: utf-8 -*- # author:baoshan import pandas as pd import pymysql config = { "host": "localhost", "port": 3306, "user": "root", "password": "12...