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 相关文章推荐
Python实现的矩阵类实例
Aug 22 Python
python数据结构之列表和元组的详解
Sep 23 Python
Python实现自动为照片添加日期并分类的方法
Sep 30 Python
Python使用pip安装pySerial串口通讯模块
Apr 20 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
Jun 26 Python
Python requests模块实例用法
Feb 11 Python
浅谈python新式类和旧式类区别
Apr 26 Python
PyQt4实时显示文本内容GUI的示例
Jun 14 Python
python用for循环求和的方法总结
Jul 08 Python
详解Django CAS 解决方案
Oct 30 Python
python 实现线程之间的通信示例
Feb 14 Python
基于python实现简单网页服务器代码实例
Sep 14 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
PHPShop存在多个安全漏洞
2006/10/09 PHP
刚才在简化php的库,结果发现很多东西
2006/12/31 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
js+html制作简单验证码
2017/02/16 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
webpack4 css打包压缩问题的解决
2018/05/18 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
自动化专业本科毕业生求职信
2013/10/20 职场文书
项目开发计划书
2014/01/09 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
数学检讨书1000字
2014/02/24 职场文书
六五普法宣传标语
2014/10/06 职场文书
2014年班组建设工作总结
2014/12/01 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
纯html+css实现Element loading效果
2021/08/02 HTML / CSS
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL