Python如何输出带颜色的文字方法
我们在使用python运维与开发的过程中,经常需要打印显示各种信息。海量的信息堆砌在控制台中,就会导致各种信息都显示在一起,降低了重要信息的可读性。这时候,如果能给重要的信息加上差异的字体颜色,那么就会更加显眼,增加使用者可阅读性。
以前看别人写代码总是出现"/033[1;31m..................../033[0m"类似出现,以为颜色输出必须"/033[1;31m“开头,” /033[0m" 结尾构成一组,其实不然。实际"/033[1;31m..................../033[0m"意思表示“....................“引号里的内容显示打印一种颜色,结尾如果有输入的话显示另外一种颜色打印。
例如我们先写一个简单的要求用户输入的例子来了解一下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
info = input("Please Introduce yourself: ") print('\033[1;33mWe asked him to introduce himself first.He said \" %s .\"\033[3;31m' %info) print('这行是上一行结尾的颜色输出效果 ')
效果如图:
如果只需要一种颜色我们就可以简单一点:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#!/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
注:';'前后的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个或者某两个;由于表示三个参数不同含义的数值都是唯一没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都可识别;
建议按照默认的格式规范书写
实现过程:
终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)。
数值表示的参数含义:
显示方式: 0(
)、1(
)、22(
)、4(
)、24(
)、 5(
)、25(
)、7(
)、27(
)、8(
)、28(
)
前景色: 30(
)、31(
)、32(
)、 33(
)、34(
)、35(
)、36(
)、37(
)
背景色: 40(
)、41(
)、42(
)、 43(
)、44(
)、45(
)、46(
)、47(
)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524205228995-1783426040.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524204901315-1737153519.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524205533082-472471078.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524205734086-25179700.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524210321360-1835825985.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524215403425-1353542774.gif)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524215543877-545960683.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524215724219-1812029269.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524215833518-310342033.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524220108176-960934333.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524220319130-1125427803.png)
前景色: 30(
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524220108176-960934333.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524220617438-718846625.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524221118964-745180909.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524221225964-79380054.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524221502205-1061520227.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524221603853-1872914998.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524221743320-689408492.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524221833995-1746129637.png)
背景色: 40(
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524221949216-1392264335.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524222107200-1138282050.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524222300428-26297773.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524222652048-1819820759.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524222737617-13476734.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524223240283-1558353065.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524223107377-1379012153.png)
![](https://images2018.cnblogs.com/blog/1403294/201805/1403294-20180524223006519-278022716.png)
实例
#!/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')
效果