在Linux终端输出彩色文字
偶然发现了一个很好玩的东西,用python在Terminal里面输出一些彩色的文字,逼格瞬间提升了不知道多少.
这个东西是Linux下的东西,玩Windows的就不必在意了.
在Linux终端下,可以通过一个类似与HTML标签的东西提示终端输出特殊效果的字符,比如print('\033[4;30;46mPython!\033[0m')
输出为:
可以看到,在上面的输出语句中,有两个类似于转义字符的字符串\033[4;30;46m
和\033[0m
,这两个字符就是终端下的颜色标签,叫做 ANSI控制码 ,他们是成对使用的. 它们的使用不限制与编程语言,只要是在Linux的字符终端里面执行的,都是可以用的.
\033
在ASCII中对应的是Esc,在这里起到一个标识符的作用.
它的一般格式为:
开始标记: \033[X((可选)显示方式);XX((可选)前景色);XX((可选)背景色)m
结束标记: \033[0m
也可以使用 \e
替代 \033
前景色,背景色,显示方式对应表如下:
显示方式 | 对应数字 | 颜色色 | 前景色对应数字 | 背景色对应数字 |
---|---|---|---|---|
默认设置 | 0 | 黑色 | 30 | 40 |
加粗 | 1 | 红色 | 31 | 41 |
下划线 | 4 | 绿色 | 32 | 42 |
闪烁 | 5 | 黄色 | 33 | 43 |
反色 | 7 | 蓝色 | 34 | 44 |
不可见 | 8 | 紫色 | 35 | 45 |
青蓝色 | 36 | 46 | ||
白色 | 37 | 47 |
三个选项每个都是可选的,所以都不写也是可以的,当然也就啥都不显示了.
\033[ 的其他格式
\033[XA 光标上移X行(不写 X 默认为 1)
\033[XB 光标下移X行
\033[XC 光标右移X行
\033[XD 光标左移X行
\033[y;xH 光标定位
\033[2J 清屏
\033[K 删除光标处到行尾的内容
\033[s 保存光标位置
\033[u 回复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标