使用 Python 的 print 方法可以打印输出字符串,通过如下方法可以设置打印字符串的字体颜色和背景颜色。

使用 ANSI 转义序列,几乎所有终端(Linux/Mac/Git Bash/Windows 新版终端)都支持,用来输出样式(文字颜色)、前景色、背景色、高亮、闪烁、下划线、删除线等。

完整格式

1
\033[【样式】;【前景色】;【背景色】m
  • \033: 转义开始(等于 ESC)
  • [:固定开头
  • m:固定结尾
  • 中间用 分号 分隔多个参数(顺序可换)

特性:

  • 参数顺序不影响 \033[1;31m = \033[31;1m
  • 必须用 \033[0m 结束,否则后面所有输出都会保持这个颜色
  • 一个序列可以同时设置:样式 + 文字色 + 背景色,例如:\033[1;33;44m = 粗体 黄字 + 蓝背景
  • \033是八进制,也可写作十六进制 \x1b,效果完全一样:\x1b[0;31m = \033[0;31m

样式(0-9)

样式代码 样式详情
0 默认样式(清楚所有颜色、样式)
1 粗体/高亮
2 淡化(变暗)
3 斜体
4 下划线
5 闪烁(部分终端支持,如VSCODE)
7 反色(前景背景互换)
8 隐藏
9 删除线

前景色(文字颜色30-37/90-97)

前景色代码 前景色颜色
30 黑色
31 红色
32 绿色
33 黄色
34 蓝色
35 紫色 / 品红
36 青色 / 天蓝
37 白色
90 亮黑(灰)
91 亮红
92 亮绿
93 亮黄
94 亮蓝
95 亮紫
96 亮青
97 亮白

背景色(40-47/100-107)

背景色代码 背景色颜色
40 黑背景
41 红背景
42 绿背景
43 黄背景
44 蓝背景
45 紫背景
46 青背景
47 白背景
100 亮黑背景
101 亮红背景
102 亮绿背景
103 亮黄背景
104 亮蓝背景
105 亮紫背景
106 亮青背景
107 亮白背景

常用组合

1
2
3
4
5
6
7
8
\033[0m    重置(必须加在结尾)
\033[0;31m 红色普通
\033[1;31m 红色粗体
\033[4;31m 红色下划线
\033[1;91m 亮红粗体
\033[41;37m 红底白字
\033[7;31m 反色(红底)
\033[1;92;41m 亮绿粗体 + 红背景

示例

以Python为例。

字体颜色

1
2
3
4
5
6
7
8
9
print("\033[1;30m 字体颜色:白色\033[0m")
print("\033[1;31m 字体颜色:红色\033[0m")
print("\033[1;32m 字体颜色:深黄色\033[0m")
print("\033[1;33m 字体颜色:浅黄色\033[0m")
print("\033[1;34m 字体颜色:蓝色\033[0m")
print("\033[1;35m 字体颜色:淡紫色\033[0m")
print("\033[1;36m 字体颜色:青色\033[0m")
print("\033[1;37m 字体颜色:灰色\033[0m")
print("\033[1;38m 字体颜色:浅灰色\033[0m")

背景颜色

1
2
3
4
5
6
7
8
print("背景颜色:白色   \033[1;40m    \033[0m")
print("背景颜色:红色 \033[1;41m \033[0m")
print("背景颜色:深黄色 \033[1;42m \033[0m")
print("背景颜色:浅黄色 \033[1;43m \033[0m")
print("背景颜色:蓝色 \033[1;44m \033[0m")
print("背景颜色:淡紫色 \033[1;45m \033[0m")
print("背景颜色:青色 \033[1;46m \033[0m")
print("背景颜色:灰色 \033[1;47m \033[0m")

Windows CMD 显示颜色方法

1
2
3
4
5
import os
import platform
# 如果平台系统是 'Linux',则不需要此设置
if platform.system() == 'Windows':
os.system('color FF')

参考链接

  1. python print字体颜色 print背景颜色