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和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
在Python中执行系统命令的方法示例详解
Sep 14 Python
Python中判断输入是否为数字的实现代码
May 26 Python
python迭代dict的key和value的方法
Jul 06 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
python中 * 的用法详解
Jul 10 Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
用python拟合等角螺线的实现示例
Dec 27 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 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
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
常用PHP封装分页工具类
2017/01/14 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
解析window.open的使用方法总结
2013/06/19 Javascript
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
Node.js进阶之核心模块https入门
2018/05/23 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
前后端常见的几种鉴权方式(小结)
2019/08/04 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
详解Python locals()的陷阱
2019/03/26 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
几个Linux面试题笔试题
2016/08/01 面试题
Linux文件操作命令都有哪些
2016/07/23 面试题
村优秀党员事迹材料
2014/01/15 职场文书
业务员薪酬管理制度
2014/01/15 职场文书
优秀党员主要事迹
2014/01/19 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang