Python 在终端中输入内容,如果能够高亮出某些关键性内容,能帮我们快速注意到输出内容,并且格式上也会更加美观。
1.1 自定义代码实现
1.1.1 实现过程
终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。转义序列是以 ESC 开头,即用 \033 来完成(ESC 的 ASCII 码用十进制表示 27,用八进制表示就是 033)。
1.1.2 书写格式
打印的字符串必须符合格式,才能高亮出来,即开头部分+中间内容+结尾部分。
- 开头部分:
\033[显示方式;前景色;背景色m- 开头部分中的三个参数:显示方式、前景色、背景色是可选参数,可以只写其中的一个;
 - 另外由于表示三个参数不同含义的数值都是唯一的,所以三个参数的书写顺序没有固定要求,系统都可以识别
 
 - 中间内容:需要高亮的内容
 - 结尾部分:
\033[0m 
💡 结尾部分其实也可以省略不写,但是为了书写规范,建议使用
\033[***开头, \033[0m结尾。 💡 这里\033也可以换成\x1b
1.1.3 数值表示的参数含义
- 显示方式: 0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
 - 前景色: 30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋 红)、36(青色)、37(白色)
 - 背景色: 40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋 红)、46(青色)、47(白色)
1.1.4 常见开头
| CODE | 描述 | | —- | —- | | \033[0m | 默认字体正常显示,不高亮 | | \033[32;0m | 红色字体正常高亮 | | \033[1;32;40m | 显示方式:高亮;字体前景色:绿色;背景色:黑色 | | \033[0;31;46m | 显示方式:正常;字体前景色:红色;背景色:黑色 | 
1.1.4 实例
print("\033[1;31;40m您输入的帐号或密码错误!\033[0m")print("\033[0;31m%s\033[0m" % "输出红色字符")
1.2 TermColor
先安装 termcolor 第三方库:
pip install termcolor
1.2.1 示例
from termcolor import colored, cprinttext = colored("Hello, World!", "red", attrs=["reverse", "blink"])print(text)cprint("Hello, World!", "green", "on_red")
1.2.2 Properties
| 文字颜色 | 文字背景颜色 | 文字属性 | 
|---|---|---|
| grey | on_grey | bold | 
| red | on_red | dark | 
| green | on_green | underline | 
| yellow | on_yellow | blink | 
| blue | on_blue | reverse | 
| magenta | on_magenta | concealed | 
| cyan | on_cyan | |
| white | on_white | 
1.2.3 Windows支持
termcolor 仅支持 linux 系统,对于 windows,需要结合 colorama 库进行使用。
from colorama import initfrom termcolor import colored# use Colorama to make Termcolor work on Windows tooinit()# then use Termcolor for all colored text outputprint(colored('Hello, World!', 'green', 'on_red'))
💡 Linux 一定不要借助
colorama,否则无法达到彩色字体的效果。 💡 测试下来,其实 Windows 下也不需要借助colorama就可以实现彩色打印了。
