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脚本暴力破解栅栏密码
Oct 19 Python
Python 多线程抓取图片效率对比
Feb 27 Python
python基于ID3思想的决策树
Jan 03 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 Python
Python 类的魔法属性用法实例分析
Nov 21 Python
如何基于python实现归一化处理
Jan 20 Python
基于python实现音乐播放器代码实例
Jul 01 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 Python
python 调用js的四种方式
Apr 11 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 Python
python实现商品进销存管理系统
May 30 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中使用unset销毁变量并内存释放问题
2012/07/05 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
JavaScript中点击事件的写法
2016/06/28 Javascript
Move.js入门
2017/02/08 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
python实现调用其他python脚本的方法
2014/10/05 Python
Python编程中的for循环语句学习教程
2015/10/14 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
python梯度下降算法的实现
2020/02/24 Python
python实现简单俄罗斯方块
2020/03/13 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
Python自动化操作实现图例绘制
2020/07/09 Python
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
施工资料员的岗位职责
2013/12/22 职场文书
消防安全汇报材料
2014/02/08 职场文书
幼儿教师研修感言
2014/02/12 职场文书
《识字五》教学反思
2014/03/01 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
社区志愿者活动方案
2014/08/18 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
如何写观后感
2015/06/19 职场文书
欠款证明
2015/06/24 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
微信小程序和php的登录实现
2021/04/01 PHP