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 判断网络连通的实现方法
Apr 22 Python
Python DataFrame设置/更改列表字段/元素类型的方法
Jun 09 Python
Python实现的knn算法示例
Jun 14 Python
python遍历小写英文字母的方法
Jan 02 Python
Python获取网段内ping通IP的方法
Jan 31 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
Jun 18 Python
在python中实现同行输入/接收多个数据的示例
Jul 20 Python
python实现静态服务器
Sep 05 Python
Python双链表原理与实现方法详解
Feb 22 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
Jun 11 Python
学python最电脑配置有要求么
Jul 05 Python
Python 发送SMTP邮件的简单教程
Jun 24 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
再次研究下cache_lite
2007/02/14 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
PHP模块memcached使用指南
2014/12/08 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
javascript forEach通用循环遍历方法
2010/10/11 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
2012/12/10 Javascript
js图片预加载示例
2014/04/30 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
JavaScript中如何调用Java方法
2020/09/16 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
在Python的循环体中使用else语句的方法
2015/03/30 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
python远程邮件控制电脑升级版
2019/05/23 Python
Python input函数使用实例解析
2019/11/22 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
如何写好升职自荐信
2014/01/06 职场文书
入职担保书怎么写
2014/05/12 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
个人职业及收入证明
2014/10/13 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
浅谈MySQL之select优化方案
2021/08/07 MySQL
MySql数据库 查询时间序列间隔
2022/05/11 MySQL
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python