Python学习-终端字体高亮显示
1、采用原生转义字符序列,对Windows有的版本不支持(比如win7),完美支持Linux
实现过程:
终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。
转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)。
格式:
开头部分:\033[显示方式;前景色;背景色m + 结尾部分:\033[0m
前景色 | 背景色 | 颜色 |
30 | 40 | 黑色 |
31 | 41 | 红色 |
32 | 42 | 绿色 |
33 | 43 | 黄色 |
34 | 44 | 蓝色 |
35 | 45 | 紫红色 |
36 | 46 | 青蓝色 |
37 | 47 | 白色 |
显示方式:
显示方式 | 意义 |
0 | 终端默认设置 |
1 | 高亮显示 |
4 | 使用下划线 |
5 | 闪烁 |
7 | 反白显示 |
8 | 不可见 |
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2018/4/29 10:27
# @Author : yang
# @File : Colored_Escape_character.py
# @Software: PyCharm
#--------------------------------
#显示格式:\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):
RED = '\033[31m' #红色
GREEN = '\033[32m' #绿色
YELLOW = '\033[33m' #黄色
BLUE = '\033[34m' #蓝色
FUCHSIA = '\033[35m' #紫红色
CYAN = '\033[36m' #青蓝色
WHITE = '\033[37m' #白色
#:no color
RESET = '\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 green!'))
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!'))
输出结果:
2、采用Python标准库colorama模块--兼容linux和windows各个版本:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2018/4/29 10:57
# @Author : yang
# @File : Colored_Colorama_module.py
# @Software: PyCharm
#--------------colorama模块的一些常量-------
#colorama是一个python专门用来在控制台、命令行输出彩色文字的模块,可以跨平台使用
# 在windows下linux下都工作良好,如果你想让控制台的输出信息更漂亮一些,可以使用给这个模块。
# 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 balck(self,s):
return Fore.BLACK
def white_green(self,s):
return Fore.WHITE + Back.GREEN + s + Fore.RESET + Back.RESET
color = Colored()
print(color.red('I am red!'))
print(color.green('I am green!'))
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!'))
输出结果:
termcolor是一个python包,可以改变控制台输出的颜色,支持各种terminal(WINDOWS的cmd.exe除外)。
支持下列的文字颜色:
grey, red, green, yellow, blue, magenta, cyan, white
支持下列的背景高亮:
on_grey, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, on_white
支持下列属性:
bold, dark, underline, blink, reverse, concealed
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2018/4/29 16:49
# @Author : yang
# @File : Colored_Termcolor_module.py
# @Software: PyCharm
import sys
from termcolor import colored,cprint
text = colored('Hello,World!','red',attrs=['reverse','blink']) #colored(text, color=None, on_color=None, attrs=None)
# Available text colors:
# red, green, yellow, blue, magenta, cyan, white. # Available text highlights:
# on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, on_white. # Available attributes:
# bold, dark, underline, blink, reverse, concealed.
#print('\033[5;7;31mHello,World!\033[0m') print(text) cprint('Hello,World!','green','on_red')
#cprint('Hello,World!','green','on_red',attrs=['bold'])
#def cprint(text, color=None, on_color=None, attrs=None, **kwargs) print_red_on_cyan = lambda x:cprint(x,'red','on_cyan')
print_red_on_cyan('Hello,World!')
print_red_on_cyan('Hello,Universe!')
for i in range(10):
cprint(i,'magenta',end=' ')
cprint('Attention!','red',attrs=['bold'],file = sys.stderr)
输出结果:
参考:
1、https://pypi.org/project/colorama/
2、https://pypi.org/project/termcolor/#description
3、https://www.cnblogs.com/hellojesson/p/5961570.html
4、https://stackoverflow.com/questions/287871/print-in-terminal-with-colors/3332860#3332860
Python学习-终端字体高亮显示的更多相关文章
- Python学习-终端字体高亮显示1
Python学习-终端字体高亮显示 1.采用原生转义字符序列,对Windows有的版本不支持(比如win7),完美支持Linux 实现过程: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显 ...
- Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法
☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...
- Python之路【第二十四篇】:Python学习路径及练手项目合集
Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Py ...
- 色彩缤纷的python(改变字体颜色及样式不完全版)
色彩缤纷的python(改变字体颜色及样式) *补上昨天随笔中提到的改变字体颜色样式的方法,昨日随笔https://www.cnblogs.com/Du704/p/11265958.html 在项目过 ...
- 色彩缤纷的Python(改变字体颜色及样式)
色彩缤纷的python(改变字体颜色及样式) 在项目过程中,我们常常会因为输出信息的颜色与样式过于单调以至于让人在视觉上感到很杂乱,所以看下文: 在Linux终端中,使用转义序列来进行如上所述的显示, ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- python学习心得第一章
初始python 1什么是程序 计算机程序是一组执行某种动作的的指令.和那些电路.芯片.显卡.硬盘等不同,它不是计算机本身可以触摸的部分,而是隐藏在背后运行在硬件上面的东西.程序就是一系列告诉没有知觉 ...
- Python学习资料整理以及书籍、开发工具推荐
我不知道大家学习Python的时候是不是和我一样感觉很无助,不知道在入门或者进阶的时候应该掌握哪些知识点,下面我就梳理下我自己学习Python开 发的过程及资料分享给大家,这些方法资料可能并不适合所有 ...
- python 学习笔记 9 -- Python强大的自省简析
1. 什么是自省? 自省就是自我评价.自我反省.自我批评.自我调控和自我教育,是孔子提出的一种自我道德修养的方法.他说:“见贤思齐焉,见不贤而内自省也.”(<论语·里仁>)当然,我们今天不 ...
随机推荐
- RabbitMQ入门_15_访问控制
参考资料:https://www.rabbitmq.com/access-control.html A. 核心概念 Virtual Host:虚拟主机为 RabbitMQ 中的资源提供了逻辑分组与隔离 ...
- C# ref和out的本质
ref和out参数的效果一样,都是通过关键字找到定义在主函数里面的变量的内存地址,并通过方法体内的语法改变它的大小.不同点就是输出参数必须对参数进行初始化.输出参数和引用参数的区别:从CLR的角度来看 ...
- 二叉树—-1(No.9HN省赛小题)
题目: 1013: Prototypes analyze 时间限制: 1 Sec 内存限制: 128 MB提交: 6 解决: 4[提交][状态][讨论版] 题目描述 ALpha Ceiling M ...
- MVC5 学习笔记 controller
主要参考书籍<ASP.NET MVC5 高级编程(第5版) > 作者:Jon Galloway等 1. MVC 表示 模型-视图-控制器.MVC是一种用于开发应用程序的模式,具备良好的架构 ...
- Ajax中Delete请求参数 后台无法获取的解决方法(Restful风格)
方法一: 在ajax中写入data来传参时,直接把参数拼接到url后面 例如: $.ajax({ url: '/cyberspace/vrv/event/delete/1002?startTime=& ...
- 指定变形中心点CSS3
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> < ...
- write file to stroage trigger kernel warning
when you write large files to extern stroage, the kernel may have as follow context: [ 4560.236385] ...
- poj2895
题解: splay,维护当前第k大 并查集维护当前集合 合并x,y时,del(num[x]),del(num[y]),insert(num[x]+num[y]) 代码: #include<cst ...
- SpingBoot三——基础架构
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:https://www.cnblogs.com/by-dream/p/10492073.html 继续上一节,为了更好的开发,现将 ...
- 网络协议栈学习(一)socket通信实例
网络协议栈学习(一)socket通信实例 该实例摘自<linux网络编程>(宋敬彬,孙海滨等著). 例子分为服务器端和客户端,客户端连接服务器后从标准输入读取输入的字符串,发送给服务器:服 ...