带颜色的字体输出控制
有时候我们需要对有用的信息设置不同颜色来达到强调、突出、美观的效果,在linux终端中,颜色是用转义序列控制的,转义序列是以ESC开头,在代码中用\033表示(ESC的ASCII码用十进制表示就是27,等于用八进制表示的33,\0表示八进制)。这个其实跟python无关,跟具体所用console的类型有关系,不同的类型对应不同的控制码,如果是ansi终端,可以用ansi的控制码。
书写格式,和相关说明如下:
- 格式:\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 不可见
- 例子:
- \033[1;31;40m <!--1-高亮显示 31-前景色红色 40-背景色黑色-->
- \033[0m <!--采用终端默认设置,即取消颜色设置-->
- \33[90m -- \33[97m 黑底彩色
- 90:黑
- 91:深红
- 92:绿
- 93:黄色
- 94:蓝色
- 95:紫色
- 96:深绿
- 97:白色
- \33[nA 光标上移n行
- \33[nB 光标下移n行
- \33[nC 光标右移n行
- \33[nD 光标左移n行
- \33[y;xH设置光标位置
- \33[2J 清屏
- \33[K 清除从光标到行尾的内容
- \33[s 保存光标位置
- \33[u 恢复光标位置
- \33[?25l 隐藏光标
- \33[?25h 显示光标
下面是一个在python中使用的例子:
- print '\033[1;31;40m'
- print '*' * 50
- print '*HOST:\t', request.META.get('REMOTE_ADDR')
- print '*URI:\t', request.path
- print '*ARGS:\t', QueryDict(request.body)
- print '*TIME:\t', time.time() - request.start_time
- print '*' * 50
- print '\033[0m'
显示结果如下: