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 08 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
Aug 16 Python
python好玩的项目—色情图片识别代码分享
Nov 07 Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 Python
PyQt5+requests实现车票查询工具
Jan 21 Python
Python序列化与反序列化pickle用法实例
Nov 11 Python
解决Python3下map函数的显示问题
Dec 04 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
Python发送邮件实现基础解析
Aug 14 Python
python热力图实现简单方法
Jan 29 Python
分享几种python 变量合并方法
Mar 20 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
更改localhost为其他名字的方法
2014/02/10 PHP
php根据年月获取季度的方法
2014/03/31 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
CI框架常用函数封装实例
2016/11/21 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
python数据结构树和二叉树简介
2014/04/29 Python
使用python实现BLAST
2018/02/12 Python
python内存管理机制原理详解
2019/08/12 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
Python (Win)readline和tab补全的安装方法
2019/08/27 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
python实现取余操作的简单实例
2020/08/16 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
python MD5加密的示例
2020/10/19 Python
HTTP状态码详解
2021/03/18 杂记
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
师范大学音乐表演专业求职信
2013/10/23 职场文书
医院护士工作检讨书
2014/10/26 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
2016党校培训心得体会
2016/01/07 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
科普 | 业余无线电知识-波段篇
2022/02/18 无线电
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers