python在windows命令行下输出彩色文字的方法


Posted in Python onMarch 19, 2015

本文实例讲述了python在windows命令行下输出彩色文字的方法。分享给大家供大家参考。具体分析如下:

默认情况下python在控制台输出的文字信息都是黑白的,如果能将文字做成彩色的输出,输出效果会更完美,也很酷,不是吗,下面是一段演示代码,这段代码封装了一个color类用来输出带颜色的文字,只要调用该类里面的相关方法就可以了,非常简单。

#!/usr/bin/env python 

#encoding: utf-8

import ctypes

STD_INPUT_HANDLE = -10

STD_OUTPUT_HANDLE= -11

STD_ERROR_HANDLE = -12

FOREGROUND_BLACK = 0x0

FOREGROUND_BLUE = 0x01 # text color contains blue.

FOREGROUND_GREEN= 0x02 # text color contains green.

FOREGROUND_RED = 0x04 # text color contains red.

FOREGROUND_INTENSITY = 0x08 # text color is intensified.

BACKGROUND_BLUE = 0x10 # background color contains blue.

BACKGROUND_GREEN= 0x20 # background color contains green.

BACKGROUND_RED = 0x40 # background color contains red.

BACKGROUND_INTENSITY = 0x80 # background color is intensified.

class Color:

    ''' See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_reference.asp

    for information on Windows APIs. - 3water.com'''

    std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)

    def set_cmd_color(self, color, handle=std_out_handle):

        """(color) -> bit

        Example: set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY)

        """

        bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)

        return bool

    def reset_color(self):

        self.set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)

    def print_red_text(self, print_text):

        self.set_cmd_color(FOREGROUND_RED | FOREGROUND_INTENSITY)

        print print_text

        self.reset_color()

    def print_green_text(self, print_text):

        self.set_cmd_color(FOREGROUND_GREEN | FOREGROUND_INTENSITY)

        print print_text

        self.reset_color()

    def print_blue_text(self, print_text):

        self.set_cmd_color(FOREGROUND_BLUE | FOREGROUND_INTENSITY)

        print print_text

        self.reset_color()

    def print_red_text_with_blue_bg(self, print_text):

        self.set_cmd_color(FOREGROUND_RED | FOREGROUND_INTENSITY| BACKGROUND_BLUE | BACKGROUND_INTENSITY)

        print print_text

        self.reset_color()   

if __name__ == "__main__":

    clr = Color()

    clr.print_red_text('red')

    clr.print_green_text('green')

    clr.print_blue_text('blue')

    clr.print_red_text_with_blue_bg('background')

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
urllib2自定义opener详解
Feb 07 Python
更改Python命令行交互提示符的方法
Jan 14 Python
简单的Python2.7编程初学经验总结
Apr 01 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
python重试装饰器的简单实现方法
Jan 31 Python
python+mysql实现学生信息查询系统
Feb 21 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
jupyternotebook 撤销删除的操作方式
Apr 17 Python
python如何写出表白程序
Jun 01 Python
python属于软件吗
Jun 18 Python
浅谈keras 模型用于预测时的注意事项
Jun 27 Python
python通过colorama模块在控制台输出彩色文字的方法
Mar 19 #Python
python实现颜色rgb和hex相互转换的函数
Mar 19 #Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
Mar 19 #Python
python遍历类中所有成员的方法
Mar 18 #Python
python获取图片颜色信息的方法
Mar 18 #Python
Python调用C语言开发的共享库方法实例
Mar 18 #Python
Python两个整数相除得到浮点数值的方法
Mar 18 #Python
You might like
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
php 文章调用类代码
2011/08/11 PHP
php把session写入数据库示例
2014/02/26 PHP
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
jquery ui resizable bug解决方法
2010/10/26 Javascript
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
微信小游戏中three.js离屏画布的示例代码
2020/10/12 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
python元组的概念知识点
2019/11/19 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
ALDO美国官网:加拿大女鞋品牌
2018/12/28 全球购物
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
北京SQL新华信咨询
2016/09/30 面试题
服装机修工岗位职责
2013/12/26 职场文书
新学期决心书
2014/03/11 职场文书
代办委托书怎么写
2014/08/01 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
安全保证书格式
2015/02/28 职场文书
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle