目录
前言
在实际应用开发中,我们经常会为控制台的输出文本添加一些颜色。
但是Python中的print()函数明显没有提供颜色选项。
根据我自己的了解,在终端上输出带颜色文字共有三种方法:
[1]字符串转义序列
[2]Curses模块
[3]GUI组件
==1== 字符串转义序列
实现过程
终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。
转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)。
书写格式
033[显示方式;前景色;背景色m + \033[0m
注意:开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个;另外由于表示三个参数不同含义的数值都是唯一的没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都能识别;但是,建议按照默认的格式规范书写。
对于结尾部分,其实也可以省略,但是为了书写规范,建议\033[***开头,\033[0m结尾。
示例:
#!/usr/bin/env python3
#示例
print("\033[32m This is the GREEN text")
# ^ |<>||<---文本部分--------->|
# ESC 样式
输出:
但是在cmd上会显示成这样:
从这里我们发现了两个问题:一个是cmd中的问题,另外一个是Terminal中输出后,接下来的提示符以及输入内容都变色了。
cmd中的问题请看下面两节。
现在我们讨论WT中的问题:
既然字符串转义序列可以改变颜色,那么我们可以在这之后调回白色。
print("\033[32m GREEN \033[37m") #37是白色
太棒了!(^-^)V
不仅可以设置颜色,还可以设置背景和样式。
模块下载
本人制作了一个模块专门使用该特性:
Python颜色字模块-Python文档类资源-优快云文库https://download.youkuaiyun.com/download/qq_52516913/50595487