Windows和Linux下Python输出彩色文字的方法教程


Posted in Python onMay 02, 2017

前言

最近在项目中需要输出彩色的文字来提醒用户,以前写过,但是只能在win上面运行。

今天搜了下看有没有在win和Linux上通用的输出彩色文字的模块,结果发现没有,,于是就自己弄了一个,分享下,以后用的时候翻翻博客,方便别人也方便自己。

win下输出彩色文字,网上有两种方法一种是用system执行命令来设置颜色,感觉还是不太好,用ctypes模块实现更好点。

linux下设置颜色,网上只找到了一种方法,下面不废话了,直接贴下代码:

示例代码

import platform
if 'Windows' in platform.system():
 import sys
 import ctypes
 __stdInputHandle = -10
 __stdOutputHandle = -11
 __stdErrorHandle = -12
 __foreGroundBLUE = 0x09
 __foreGroundGREEN = 0x0a
 __foreGroundRED = 0x0c
 __foreGroundYELLOW = 0x0e
 stdOutHandle=ctypes.windll.kernel32.GetStdHandle(__stdOutputHandle)
 def setCmdColor(color,handle=stdOutHandle):
 return ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
 def resetCmdColor():
 setCmdColor(__foreGroundRED | __foreGroundGREEN | __foreGroundBLUE)
 def printBlue(msg):
 setCmdColor(__foreGroundBLUE)
 sys.stdout.write(msg + '\n')
 resetCmdColor()
 def printGreen(msg):
 setCmdColor(__foreGroundGREEN)
 sys.stdout.write(msg + '\n')
 resetCmdColor()
 def printRed(msg):
 setCmdColor(__foreGroundRED)
 sys.stdout.write(msg + '\n')
 resetCmdColor()
 def printYellow(msg):
 setCmdColor(__foreGroundYELLOW)
 sys.stdout.write(msg + '\n')
 resetCmdColor()
else:
 STYLE = {
 'fore':{
 'red': 31,
 'green': 32,
 'yellow': 33,
 'blue': 34,
 }
 }
 def UseStyle(msg, mode = '', fore = '', back = '40'):
 fore = '%s' % STYLE['fore'][fore] if STYLE['fore'].has_key(fore) else ''
 style = ';'.join([s for s in [mode, fore, back] if s])
 style = '\033[%sm' % style if style else ''
 end = '\033[%sm' % 0 if style else ''
 return '%s%s%s' % (style, msg, end)
 def printRed(msg):
 print UseStyle(msg,fore='red')
 def printGreen(msg):
 print UseStyle(msg,fore='green')
 def printYellow(msg):
 print UseStyle(msg,fore='yellow')
 def printBlue(msg):
 print UseStyle(msg,fore='blue')

效果图:

Windows:

Windows和Linux下Python输出彩色文字的方法教程

C:\luan\lu4n.com-sqli>python
Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> from color import *
>>> printRed('Red')
Red
>>> printGreen('Green')
Green
>>> printYellow('Yellow')
Yellow
>>> printBlue('Blue')
Blue
>>> print 'http://lu4n.com/'
http://lu4n.com/
>>>

Linux:

Windows和Linux下Python输出彩色文字的方法教程

[root@Luan ~]# nano test_color.py
[root@Luan ~]# python
Python 2.7.5 (default, Jun 17 2014, 18:11:42) 
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from test_color import *
>>> printRed('Red')
Red
>>> printGreen('Green')
Green
>>>

用起来很容易,直接from color import *就可以用了,有4种常用颜色可以使用,分别写了4个函数:

提示信息 printBlue

成功信息 printGreen

失败信息 printRed

警告信息 printYellow

和bootstrap的几种颜色差不多,应该够用了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python计算N天之后日期的方法
Mar 31 Python
Python OS模块常用函数说明
May 23 Python
python链接Oracle数据库的方法
Jun 28 Python
全面了解Nginx, WSGI, Flask之间的关系
Jan 09 Python
Python 修改列表中的元素方法
Jun 26 Python
Tensorflow 同时载入多个模型的实例讲解
Jul 27 Python
Django框架中序列化和反序列化的例子
Aug 06 Python
python实现统计代码行数的小工具
Sep 19 Python
关于numpy中eye和identity的区别详解
Nov 29 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
python 实现朴素贝叶斯算法的示例
Sep 30 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 Python
python中字符串类型json操作的注意事项
May 02 #Python
python实现逻辑回归的方法示例
May 02 #Python
pycharm中连接mysql数据库的步骤详解
May 02 #Python
Python多线程实现同步的四种方式
May 02 #Python
Python之Web框架Django项目搭建全过程
May 02 #Python
python3实现抓取网页资源的 N 种方法
May 02 #Python
Pycharm学习教程(2) 代码风格
May 02 #Python
You might like
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
PHP学习笔记之数组篇
2011/06/28 PHP
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
PHP 转义使用详解
2013/07/15 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
php实现数字补零的方法总结
2018/09/12 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
Prototype Number对象 学习
2009/07/19 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
node.js利用redis数据库缓存数据的方法
2017/03/01 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
pandas多级分组实现排序的方法
2018/04/20 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
Python作用域与名字空间原理详解
2020/03/21 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
.NET常见笔试题集
2012/12/01 面试题
工作作风承诺书
2014/08/30 职场文书
学校食堂标语
2014/10/06 职场文书
工作失误检讨书
2015/01/26 职场文书
销售开票员岗位职责
2015/04/15 职场文书
广播体操比赛主持词
2015/06/29 职场文书
校园安全教育心得体会
2016/01/15 职场文书