Python实现Windows CMD命令行彩色输出
#! /usr/bin/env python#coding=utf-8import ctypes,sysSTD_INPUT_HANDLE = -10STD_OUTPUT_HANDLE = -11STD_ERROR_HANDLE = -12# 字体颜色定义 ,关键在于颜色编码,由2位十六进制组成,分别取0~f,前一位指的是背景色,后一位指的是字体色#由于该函数的限制,应该是只有这16种,可以前景色与背景色组合。也可以几种颜色通过或运算组合,组合后还是在这16种颜色中# Windows CMD命令行 字体颜色定义 text colorsFOREGROUND_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 colorsBACKGROUND_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 handlestd_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 whitedef resetColor(): set_cmd_text_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)################################################################暗蓝色#dark bluedef printDarkBlue(mess): set_cmd_text_color(FOREGROUND_DARKBLUE) sys.stdout.write(mess) resetColor()#暗绿色#dark greendef printDarkGreen(mess): set_cmd_text_color(FOREGROUND_DARKGREEN) sys.stdout.write(mess) resetColor()#暗天蓝色#dark sky bluedef printDarkSkyBlue(mess): set_cmd_text_color(FOREGROUND_DARKSKYBLUE) sys.stdout.write(mess) resetColor()#暗红色#dark reddef printDarkRed(mess): set_cmd_text_color(FOREGROUND_DARKRED) sys.stdout.write(mess) resetColor()#暗粉红色#dark pinkdef printDarkPink(mess): set_cmd_text_color(FOREGROUND_DARKPINK) sys.stdout.write(mess) resetColor()#暗黄色#dark yellowdef printDarkYellow(mess): set_cmd_text_color(FOREGROUND_DARKYELLOW) sys.stdout.write(mess) resetColor()#暗白色#dark whitedef printDarkWhite(mess): set_cmd_text_color(FOREGROUND_DARKWHITE) sys.stdout.write(mess) resetColor()#暗灰色#dark graydef printDarkGray(mess): set_cmd_text_color(FOREGROUND_DARKGRAY) sys.stdout.write(mess) resetColor()#蓝色#bluedef printBlue(mess): set_cmd_text_color(FOREGROUND_BLUE) sys.stdout.write(mess) resetColor()#绿色#greendef printGreen(mess): set_cmd_text_color(FOREGROUND_GREEN) sys.stdout.write(mess) resetColor()#天蓝色#sky bluedef printSkyBlue(mess): set_cmd_text_color(FOREGROUND_SKYBLUE) sys.stdout.write(mess) resetColor()#红色#reddef printRed(mess): set_cmd_text_color(FOREGROUND_RED) sys.stdout.write(mess) resetColor()#粉红色#pinkdef printPink(mess): set_cmd_text_color(FOREGROUND_PINK) sys.stdout.write(mess) resetColor()#黄色#yellowdef printYellow(mess): set_cmd_text_color(FOREGROUND_YELLOW) sys.stdout.write(mess) resetColor()#白色#whitedef printWhite(mess): set_cmd_text_color(FOREGROUND_WHITE) sys.stdout.write(mess) resetColor()###################################################白底黑字#white bkground and black textdef printWhiteBlack(mess): set_cmd_text_color(FOREGROUND_BLACK | BACKGROUND_WHITE) sys.stdout.write(mess) resetColor()#白底黑字#white bkground and black textdef printWhiteBlack_2(mess): set_cmd_text_color(0xf0) sys.stdout.write(mess) resetColor()#黄底蓝字#white bkground and black textdef 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命令行彩色输出的更多相关文章
- 【转】Python实现修改Windows CMD命令行输出颜色(完全解析)
用Python写命令行程序的时候,单一的输出颜色太单调.其实我们可以加些色彩,比如用红色表示警告,绿色表示结果正常等.网上也有几篇类似的帖子,但是没有把问题讲清楚,贴的代码也不是太清晰.这里,对Win ...
- SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法
create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ...
- Windows cmd 命令行基本操作
Windows cmd 命令行基本操作 1. 进入到指定根目录 注意:不区分大小写 例如进入到 D 盘 2. 进入到指定的目录 例如 (如果目录文件名太长,可以使用 tab 键来自动补全.重复按可以进 ...
- 【Python】解决Python脚本 在cmd命令行窗口运行时,中文乱码问题
问题描述 python2.X,代码中指定了UTF-8,但是在cmd命令行窗口时,打印的中文仍然会乱码 在python3不存在该问题 运行结果: 原因 搜索得知,中文windows默认的输出编码为gbk ...
- Windows 在命令行中将输出内容放到文件中
1.将命令行中输出的内容存储到文件中. 使用重定向符号 “>” 就可以了. 通过 > 可以创建新文件并将内容放到文件中,如果文件存在,则会覆盖. 2.通过 >> 可以向已有的文 ...
- 从windows CMD 命令行(CMD promp)运行Docker
英文原帖 Running Docker from Windows CMD prompt https://medium.com/@neil.avery_68603/running-docker-from ...
- windows cmd命令行下创建文件和文件夹
在window下无法通过 右键=>新建 命令来创建以点开头的文件和文件夹 比如 .log ,会提示必须输入文件名. 可以通过命令行来创建 新建文件夹 mkdir .vs 新建文件 type NU ...
- 复制windows CMD命令行中的内容
标记文本后,按"回车",或鼠标"右键"为从CMD中复制文本. 在CMD中,按鼠标"右键",为在CMD中粘贴文本.
- windows cmd 命令行 —— 进程与服务
1. 进程查看与操作 tasklist tskill pid 2. 服务查看与操作 net start net stop
随机推荐
- Python全栈开发之6、面向对象
一.创建类和对象 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例 ...
- gitignore忽略处理
.gitignore文件内容 忽略所有文件夹 /*/ 忽略所有文件 /* 这时 git add 已经失效 需要使用 git add -f 强制添加文件进版本库 好处在于在本地添加文件文件夹时, ...
- python 高阶函数 lamdad reduce map
## def use_filer(l):## # 过滤偶数# rest = filter(lambda n: n % 2 != 0, l)# return rest## if __name__ == ...
- Python—None
None是一个特殊的常量. None不是False. None不是0. None不是空字符串. None有自己的数据类型NoneType,并且是NoneType中唯一的值. None只是一个空值的对象 ...
- Java EE javax.servlet中的ServletResponse接口
ServletResponse接口 public interface ServletResponse 子接口:HttpServletResponse 实现类:HttpServletResponseWr ...
- CW2A与CA2W
字符串的ASCII和UNICODE之间的转换 1)Win32提供了API函数MultiByteToWideChar和WideCharToMultiByte来提供这种功能. 2)ATL还提供了另一套转换 ...
- Java实现的基础数据结构
Java实现的基础数据结构 0,常用的基础数据结构 图1 基础数据结构&相关特性 图2 Java自带的类集框架&继承关系图 1,数组[Array] 特点:长度固定.查找方便[直接使用i ...
- WCF寄宿windows服务二
如果有很多WCF服务需要寄宿,需要额外做一些工作:总体思路是:先把这些WCF服务的程序集打包,然后利用反射加载各个WCF服务的程序集,按顺序一个一个寄宿.先来看看我们需要寄宿的WCF服务: 实现步骤: ...
- O057、Delete Volume 操作
参考https://www.cnblogs.com/CloudMan6/p/5648665.html 状态为Available 的volume 才能够被delete,如果volume当前已经被at ...
- 12 Django之Cookie和Session
一.什么是Cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接 ...