Python在命令行中使用print打印不同的颜色
显示颜色格式:\033[显示方式;字体色;背景色m......[\033[0m
书写格式:
开头部分:\033[显示方式;前景色;背景色m + 结尾部分:\033[0m
- 开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个;
- 由于表示三个参数不同含义的数值都是唯一的没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都能识别;
- 建议按照默认的格式规范书写。
- 对于结尾部分,其实对后续输出信息的颜色样式定义,一般设置为系统默认,也可以省略,但是为了显示和书写规范,建议\033[***开头,\033[0m结尾。
前景色: 30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋 红)、36(青色)、37(白色)
背景色: 40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋 红)、46(青色)、47(白色)
------------------------------------------- 字体色 | 背景色 | 颜色描述 ------------------------------------------- 30 | 40 | 黑色 31 | 41 | 红色 32 | 42 | 绿色 33 | 43 | 黃色 34 | 44 | 蓝色 35 | 45 | 紫红色 36 | 46 | 青蓝色 37 | 47 | 白色 ------------------------------------------- ------------------------------- 显示方式 | 效果 ------------------------------- 0 | 终端默认设置 1 | 高亮显示 4 | 使用下划线 5 | 闪烁 7 | 反白显示 8 | 不可见 -------------------------------
print('\033[1;36m床前明月光,') print('疑是地上霜。') print('举头望明月,') print('低头思故乡。\033[0m')
出处:https://www.cnblogs.com/hanfe1/p/10664942.html
==================================================================================
我们在使用python运维与开发的过程中,经常需要打印显示各种信息。海量的信息堆砌在控制台中,就会导致各种信息都显示在一起,降低了重要信息的可读性。这时候,如果能给重要的信息加上差异的字体颜色,那么就会更加显眼,增加使用者可阅读性。
以前看别人写代码总是出现"\033[1;31m......\033[0m" 类似出现,
我自己以为颜色输出必须"\033[1;31m“开头,” \033[0m" 结尾构成一组,其实不然。
实际上"\033[1;31m...................." 表示的意思是“....................“引号里的内容显示打印一种颜色(红色),
而后面的\033[0m表示,后续如果有需要显示的内容,则显示另外一种颜色(默认颜色样式)。
例如我们先写一个简单的要求用户输入的例子来了解一下:
info = input("Please Introduce yourself: ") print('\033[1;33mWe asked him to introduce himself first.He said \" %s .\"\033[3;31m' %info) print('这行是上一行结尾的颜色输出效果 ')
效果如图:
第一行显示的是默认颜色样式
第二行是:\033[1;33m定义的颜色样式
第三行是:\033[3;31m定义的颜色样式,也就是第二行最后设置的
一般情况是在末尾设置成系统默认颜色样式,使用:\033[0m
如果只需要一种颜色我们就可以简单一点:
#!/usr/bin/env python #-*- coding:utf-8 -*- print('\033[0m这是显示方式0') print('\033[1m这是显示方式1') print('\033[4m这是显示方式4') print('\033[5m这是显示方式5') print('\033[7m这是显示方式7') print('\033[8m这是显示方式8') print('\033[30m这是前景色0') print('\033[31m这是前景色1') print('\033[32m这是前景色2') print('\033[33m这是前景色3') print('\033[34m这是前景色4') print('\033[35m这是前景色5') print('\033[36m这是前景色6') print('\033[37m这是前景色7') print('\033[40m这是背景色0') print('\033[41m这是背景色1') print('\033[42m这是背景色2') print('\033[43m这是背景色3') print('\033[44m这是背景色4') print('\033[45m这是背景色5') print('\033[46m这是背景色6') print('\033[47m这是背景色7')
Pytharm效果如图:
书写格式,和相关说明如下:
说明: 前景色 背景色 颜色 --------------------------------------- 30 40 黑色 31 41 红色 32 42 绿色 33 43 黃色 34 44 蓝色 35 45 洋红 36 46 青色 37 47 白色 显示方式 意义 ---------------------------------- 0 终端默认设置 1 高亮显示
22 非高亮显示 4 使用下划线
24 去下划线 5 闪烁
25 去闪烁 7 反白显示
27 非反显 8 不可见
28 可见 例: \033[1;32;41m #---1-高亮显示 32-前景色绿色 40-背景色红色--- \033[0m #---采用终端默认设置,即缺省颜色---
*具体格式*:
设置颜色开始 :\033[显示方式;前景色;背景色m
注:';'前后的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个或者某两个;由于表示三个参数不同含义的数值都是唯一没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都可识别;
建议按照默认的格式规范书写
实现过程:
前景色:
背景色:
#!/usr/bin/env python #-*- coding:utf-8 -*- print('\033[1;31;40m') #下一目标输出背景为黑色,颜色红色高亮显示 print('*' * 50) print('\033[7;31m错误次数超限,用户已被永久锁定,请联系管理员!\033[1;31;40m') #字体颜色红色反白处理 print('*' * 50) print('\033[0m')
效果
出处:https://www.cnblogs.com/easypython/p/9084426.html
===========================================================================================
完整测试代码:
#!/usr/bin/python # encoding: utf-8 # -*- coding: utf-8 -*- import os # 可以根据自己的需求,把常用的封装起来,用的时候直接调用就可以了 class bcolors: cHEADER = '\033[95m' cOKBLUE = '\033[94m' cOKGREEN = '\033[92m' cWARNING = '\033[93m' cFAIL = '\033[91m' cBOLD = '\033[1m' cUNDERLINE = '\033[4m' cEND = '\033[0m' def test1(): print('\033[0m这是显示方式0') print('\033[1m这是显示方式1') print('\033[4m这是显示方式4') print('\033[5m这是显示方式5') print('\033[7m这是显示方式7') print('\033[8m这是显示方式8') print('\033[30m这是前景色0') print('\033[31m这是前景色1') print('\033[32m这是前景色2') print('\033[33m这是前景色3') print('\033[34m这是前景色4') print('\033[35m这是前景色5') print('\033[36m这是前景色6') print('\033[37m这是前景色7') print('\033[40m这是背景色0') print('\033[41m这是背景色1') print('\033[42m这是背景色2') print('\033[43m这是背景色3') print('\033[44m这是背景色4') print('\033[45m这是背景色5') print('\033[46m这是背景色6') print('\033[47m这是背景色7\033[0m') print('\033[2;36;43m这是综合颜色\033[0m\n\n') def test2(): print('\033[3;36m床前明月光,') print('疑是地上霜。') print('举头望明月,') print('低头思故乡。\033[0m\n\n') if __name__ == '__main__': os.system('clear') os.system('clear') print("\n__name__ is "+__name__+"\n") test1() test2() #info = input("Please Introduce yourself: ") info="hahaha" print("----------") print('\033[1;33mWe asked him to introduce himself first.He said : \033[1;35m\" %s .\"\033[3;31m' %info) print('这行是上一行结尾的颜色输出效果 \n\n') print(bcolors.cHEADER + "警告的颜色字体?" +bcolors.cEND) print(bcolors.cOKBLUE + "警告的颜色字体?" +bcolors.cEND) print(bcolors.cOKGREEN + "警告的颜色字体?\n" +bcolors.cEND) print('This is a \033[1;35m test \033[0m!') print('This is a \033[1;32;41m test \033[0m!') print('\033[1;33;44m This is a test ! \033[0m\n')
补充1:
今天遇到一个奇怪的问题,在Windows下编写好了的.py文件,copy到Linux中,直接执行,发现中文无法显示
最后检查发现,是Windows和Linux系统之间的编码格式及换行等不统一,默认创建的txt文件不通用!~
比如在Windows下换行符号是\r\n,而Linux下的是\n。需要设置文件格式为:utf-8无BOM ,
我这里是一的是UltraEdit另存为的,你也可以使用其他文本编辑工具另存为试试看。
补充2:
如果是Windows系统,需要使用导入os包,并使用os.system("")的调用后,才能正常显示不同的颜色,
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/12864566.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
posted on 2020-05-10 18:53 jack_Meng 阅读(4080) 评论(0) 编辑 收藏 举报