Python终端显示彩色字符

By qianghaohao(CodeNutter)
有时候需要在终端显示彩色的字符,即根据需要显示不同颜色的字符串,比如我们要在
终端打印一行错误提示信息,要把它弄成红色的。其实这个在Python中很好实现,使用转义
序列来实现不同颜色的显示,转义序列以ESC开头,它的ASCII码八进制为 \033。
显示格式为:\033[显示方式;前景色;背景色m
         用这种原生的转义序列输出,在linux下完全支持,但是在windows下确存在兼容问题,比如在
win10下可以正常显示颜色,在win7下确不支持。因此可以使用python标准库提供的colorama模块
输出彩色字体,这个模块是跨平台的,内部实现也是采用转义序列来显示颜色的,只不过对windows
平台做了特殊处理,因此完全兼容linux和windows各个版本。
         以下封装了一个Colored类,提供了两个版本,第一个版本采用原生的转义字符序列输出各种颜。
第二个版本用python标准库的colorama模块兼容windows和linux。当要在终端打印彩色字体时直接调
用对应的方法即可,很方便。
一.Colored版本1:采用原生的转义字符序列---对windows有的版本不支持(比如win7),linux完美支持
#coding:gbk
# ------------------------------------------------
#   python终端显示彩色字符类,可以调用不同的方法
# 选择不同的颜色.使用方法看示例代码就很容易明白.
# ------------------------------------------------
#
# 显示格式: \033[显示方式;前景色;背景色m
# ------------------------------------------------
# 显示方式             说明
#   0                 终端默认设置
#   1                 高亮显示
#   4                 使用下划线
#   5                 闪烁
#   7                 反白显示
#   8                 不可见
#   22                非粗体
#   24                非下划线
#   25                非闪烁
#
#   前景色             背景色            颜色
#     30                40              黑色
#     31                41              红色
#     32                42              绿色
#     33                43              黃色
#     34                44              蓝色
#     35                45              紫红色
#     36                46              青蓝色
#     37                47              白色
# ------------------------------------------------
class Colored(object):# 显示格式: \033[显示方式;前景色;背景色m# 只写一个字段表示前景色,背景色默认RED = '\033[31m'       # 红色GREEN = '\033[32m'     # 绿色YELLOW = '\033[33m'    # 黄色BLUE = '\033[34m'      # 蓝色FUCHSIA = '\033[35m'   # 紫红色CYAN = '\033[36m'      # 青蓝色WHITE = '\033[37m'     # 白色#: no colorRESET = '\033[0m'      # 终端默认颜色def color_str(self, color, s):return '{}{}{}'.format(getattr(self, color),s,self.RESET)def red(self, s):return self.color_str('RED', s)def green(self, s):return self.color_str('GREEN', s)def yellow(self, s):return self.color_str('YELLOW', s)def blue(self, s):return self.color_str('BLUE', s)def fuchsia(self, s):return self.color_str('FUCHSIA', s)def cyan(self, s):return self.color_str('CYAN', s)def white(self, s):return self.color_str('WHITE', s)# ----------使用示例如下:-------------
color = Colored()
print color.red('I am red!')
print color.green('I am gree!')
print color.yellow('I am yellow!')
print color.blue('I am blue!')
print color.fuchsia('I am fuchsia!')
print color.cyan('I am cyan!')
print color.white('I am white')

颜色对比图(根据需要自己设置对应的值):

 
运行效果:
 
二.Colored版本2:采用python标准库的colorama模块--兼容linux和windows各个版本:
# -----------------colorama模块的一些常量---------------------------
# Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
# Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
# Style: DIM, NORMAL, BRIGHT, RESET_ALL
#from colorama import  init, Fore, Back, Style
init(autoreset=True)
class Colored(object):#  前景色:红色  背景色:默认def red(self, s):return Fore.RED + s + Fore.RESET#  前景色:绿色  背景色:默认def green(self, s):return Fore.GREEN + s + Fore.RESET#  前景色:黄色  背景色:默认def yellow(self, s):return Fore.YELLOW + s + Fore.RESET#  前景色:蓝色  背景色:默认def blue(self, s):return Fore.BLUE + s + Fore.RESET#  前景色:洋红色  背景色:默认def magenta(self, s):return Fore.MAGENTA + s + Fore.RESET#  前景色:青色  背景色:默认def cyan(self, s):return Fore.CYAN + s + Fore.RESET#  前景色:白色  背景色:默认def white(self, s):return Fore.WHITE + s + Fore.RESET#  前景色:黑色  背景色:默认def black(self, s):return Fore.BLACK#  前景色:白色  背景色:绿色def white_green(self, s):return Fore.WHITE + Back.GREEN + s + Fore.RESET + Back.RESETcolor = Colored()
print color.red('I am red!')
print color.green('I am gree!')
print color.yellow('I am yellow!')
print color.blue('I am blue!')
print color.magenta('I am magenta!')
print color.cyan('I am cyan!')
print color.white('I am white!')
print color.white_green('I am white green!')
运行效果:
       

Python终端显示彩色字符(封装了Colored类)相关推荐

  1. python图片显示英文字符_Python中利用Tesseract软件来识别图片中的英文与中文

    OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...

  2. python图片显示英文字符_Python为图片素材起个英文名

    写网页的时候, 我们经常需要使用图片素材, 图片素材如果是中文名, 挂到服务器会会引发乱码, 我们需要将图片名称改为英文字符才可以使用 而起名是一个世界级难题, 为图片素材起英文名更是一件极其蛋疼的事 ...

  3. python图片显示英文字符_python如何解析字符串中出现的英文人名?

    这里有四个例子,结果来自google scholar str1 = "Jakes, William C., and Donald C. Cox. Microwave mobile commu ...

  4. [笔记]Go语言在Linux环境下输出彩色字符

    Go语言要打印彩色字符与Linux终端输出彩色字符类似,以黑色背景高亮绿色字体为例: fmt.Printf("\n %c[1;40;32m%s%c[0m\n\n", 0x1B, & ...

  5. Go语言在Linux环境下输出彩色字符

    Go语言在Linux环境下输出彩色字符 Go语言要打印彩色字符与Linux终端输出彩色字符类似 fmt.Printf("\n %c[1;40;32m%s%c[0m\n\n", 0x ...

  6. wpf计算字符大小占像素_LCD作为终端显示字符串的过程

    LCD作为终端显示字符串的过程 1.本文目的 2.资源评估 3.显示原理 4.嵌入式上汉字处理 5.结果验证与展示 6.总结 1.本文目的 做嵌入式图形开发,我们往往都会利用到各种GUI进行交互设计, ...

  7. python中文对齐_Python 终端下中文字符对齐处理和编码续

    本来是修改自己一个终端小程序的宽字符处理,然后就和编码纠结上了. 这两天花了不少时间继续研究了下这块,越研究越让人迷糊,还存在不少疑问.只能说在研究和总结这块时,我的内心是崩溃的--希望以后不再在这块 ...

  8. python将图片转换为Framebuffer裸数据格式(终端显示图片)

    要在ubuntu终端显示图片或者在板子的LCD显示图片,Framebuffer是一个简单易用的接口,直接写入像素信息即可. 但普通的图片带有头部信息或者编码格式不同,直接送入Framebuffer是显 ...

  9. printf利用转译字符在终端显示进度条(时钟)-zhuan

    printf("\33[s"); 后跟下句才能固定显示,不知道为什么 printf("\33[0;0H\33[0m"); void processbar() { ...

  10. python学习之手把手教你将图片变成黑白或彩色字符画(骚操作)

    文章目录 前言 一.字符画的实现原理 二.黑白字符画实现代码 三.彩色字符画生成 代码实现: 总结 前言 字符画这个话题,似乎早在贴吧时代就已经被玩烂了.在百度图片随便一搜索,就能够看到非常多.然后在 ...

最新文章

  1. 《Java疯狂讲义》(第3版)学习笔记 2 - Java语言的运行机制
  2. 微服务实战:从架构到发布(二)
  3. JVM调优:GC 参数
  4. linux是数据库软件么,什么是适用于Linux的良好数据库ERD工具?
  5. HTML基础入门学习准备篇
  6. 一、vi/vim编辑器
  7. 艾伟_转载:在C#中实现3层架构
  8. win10录屏_win10录屏打不开怎么办?怎么给win10录制屏幕视频?
  9. 富士通Fujitsu LPK-888T 打印机驱动
  10. chrome 恐龙 html源码,Chrome 恐龙快跑
  11. 「随笔」我的导师离职了...
  12. 集大计算机与科学的研究生,明天,我是研究生丨感谢集大,我遇见了更好的自己...
  13. 使用腾讯云轻量应用服务器搭建网络质量拨测工具 SmokePing
  14. 春风十里,美拉德在人人投等你!
  15. 5G基带芯片之战现状:一二三分别对应联发科华为高通
  16. 线性回归-正规方程(解析解)
  17. MATLAB初入门(一)
  18. 计算机二级c教程ppt,计算机国家二级C语言教程 第一二章.ppt
  19. 仿短视频竖屏播放美nv网站源码
  20. 服务器信号灯显示有红灯是正常的,路由器光信号闪红灯是怎么回事

热门文章

  1. 大数据技术 - 学习之路(一)
  2. 第五章 二叉树(a)树
  3. 【Iftop】实时监控流量工具
  4. UVA.12230.Crossing Rivers(期望)
  5. 关于变量声明的var,let,const
  6. 数据库还原的多种方式
  7. Ext学习笔记01 - NameSpace,类实例属性,类实例方法,类静态方法
  8. Binary Tree Paths(leetcode 257)
  9. 连续投影算法_腾讯优图 | 3D结构光摄像头深度算法综述
  10. opencv的Mat中step