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读取环境变量的方法和自定义类分享
Nov 22 Python
python文件与目录操作实例详解
Feb 22 Python
Python中使用asyncio 封装文件读写
Sep 11 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
python将txt等文件中的数据读为numpy数组的方法
Dec 22 Python
python Dijkstra算法实现最短路径问题的方法
Sep 19 Python
django admin后管定制-显示字段的实例
Mar 11 Python
python闭包与引用以及需要注意的陷阱
Sep 18 Python
python实现测试工具(二)——简单的ui测试工具
Oct 19 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
Apr 03 Python
python 常用的异步框架汇总整理
Jun 18 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
PHP 开源框架22个简单简介
2009/08/24 PHP
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
php中文繁体和简体相互转换的方法
2015/03/21 PHP
各种快递查询--Api接口
2016/04/26 PHP
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
js实现表格筛选功能
2017/01/18 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
python 控制语句
2011/11/03 Python
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
Python生成器常见问题及解决方案
2020/03/21 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
后勤园长自我鉴定
2013/10/17 职场文书
给小学生的新年寄语
2014/04/04 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
最新农村养殖致富:资金投入较低的创业项目有哪些?
2019/09/26 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python