文章目录
一、给“枯燥”的生活增加一点色彩
在日常的电脑使用中,我们经常会遇到终端输出的文本信息,它们往往都是单调的黑底白字。然而,在一些先进的系统或开发应用中,输出的文本却是五彩斑斓的。这样的设计不仅为使用者带来了视觉上的享受,更在无形中提升了工作效率和体验。
在终端输出彩色文本的好处包括:
-
增强可读性:
使用不同的颜色可以清晰地区分各类信息,比如错误信息用红色,成功信息用绿色。这样,读者可以迅速捕捉到关键数据,无需在冗长的文本中费力寻找。 -
优化用户体验:
彩色输出使得终端界面更加生动友好。对于有一定电脑基础但无编程经历的读者来说,这样的设计能够更直观地理解输出信息,大大减轻了认知负担。 -
加速调试和日志分析:
在开发或运维过程中,面对大量的日志信息,彩色输出可以帮助读者快速识别出错误和警告信息。这样一来,解决问题的时间大大缩短,工作效率显著提升。 -
直观反馈指令状态:
在终端中执行命令时,不同颜色的变化可以即时反馈命令的执行状态。比如,执行成功时显示绿色,失败时显示红色。这样的即时反馈机制有助于读者更好地掌控整个操作过程。
此外,彩色文本输出还有助于:
-
增加趣味性:
单调的黑底白字容易让人感到乏味,而彩色文本则能增添一丝乐趣。对于长时间面对终端的读者来说,这样的设计无疑是一种视觉上的享受。 -
促进学习:
对于初学者来说,彩色文本输出可以作为一种视觉辅助工具。通过颜色的区分,读者可以更容易地理解和学习各种命令和输出信息。
综上所述,终端输出彩色文本不仅提高了可读性和用户体验,还加快了调试和日志分析的速度,增强了指令反馈的直观性。同时,它还为电脑使用增添了一份趣味性和学习价值。
二、揭秘终端彩色文本输出的原理
我们在终端中看到这些色彩斑斓的文本输出并非魔法,而是依赖于一系列精心设计的命令序列。这些序列在文本输出之前被发送到终端,用于指导终端如何显示接下来的文本内容,包括颜色和字体样式的变化。
- ANSI转义序列:终端色彩的基石
在这些命令序列中,ANSI转义序列无疑是最为人熟知且广泛应用的规范之一。它得到了大多数终端及终端模拟器的全力支持,成为在终端中实现彩色文本输出的不二之选。
- 颜色编码:ANSI转义序列的核心
ANSI转义序列通过特定的颜色编码来控制文本的颜色。这些编码以特定的字符序列形式存在,当终端接收到这些序列时,就会根据编码的指示来更改文本的颜色。通过这种方式,我们可以轻松地在终端中输出带有各种颜色的文本。
- Python中的彩色文本输出
对于Python开发者来说,利用ANSI转义序列在终端中输出彩色文本同样简单且直观。Python提供了多种方法来实现这一功能,无论是直接拼接ANSI转义序列到字符串中,还是借助第三方库来简化操作,都能轻松达成目标。
在本文的后续部分,我们将深入探讨ANSI转义序列的颜色编码细节,并详细展示如何在Python中利用这些序列来输出彩色文本。无论读者是否具备编程经验,都能通过本文的指引轻松掌握这一技巧。
ANSI转义序列还有实现诸如控制光标位置等额外的操作,这些额外的操作与本文重点讨论的彩色文字输出关系不大,因此在此不再详细展开。
对于ANSI转义序列感兴趣的读者,或希望进一步了解该主题的读者,可以参考以下信息来源:>
ANSI escape code
如上述链接无法访问,请尝试以下链接:>
ANSI escape code | encyclopedia article by TheFreeDictionary
三、ANSI转义序列
ANSI转义序列的定义
ANSI转义序列起源于20世纪70年代,是美国国家标准协会(ANSI)定义的一种字符序列标准,ANSI转义序列是带内信令的标准,用于控制视频文本终端和终端模拟器上的光标位置、颜色、字体样式和其他选项。当终端接收到这些序列时,就会按照序列中的指令来改变显示效果。
各平台的支持情况
- 类Unix系统(Unix/Linux/MacOS):
- 几乎所有平台都原生支持ANSI转义序列
- Windows:
- Windows 10之前的控制台不支持ANSI转义序列,在Python中使用下方的colorama可以输出彩色文本,具体操作见下文。
- Windows 10的1511更新后开始支持ANSI转义序列
ANSI转义序列的构成
- 起始符:ANSI转义序列通常以ESC字符(ASCII码为27,八进制表示为\033)开头。
- 转义序列:仅由0x20-0x7F范围内的字节(所有非控制ASCII字符)组成。
- 无需前瞻解析:解析转义序列时可以逐个字节地处理这些序列,而无需提前查看序列后面的内容来确定序列的结束。
输出彩色文本相关的ANSI转义序列
- 格式:CSI + 参数 + 结束符
- CSI:ESC字符(ASCII码为27,八进制表示为\033) + 字符 “[”。(CSI - Control Sequence Introducer)
-
参数:用";"分隔的字符序列,终端要执行的具体操作的数据,需要的参数可以省略,一般默认为0。
-
结束符:一个特定的字符,指定了终端要执行的具体操作。
以“m”字符结尾,SGR(Select Graphic Rendition:图形再现选择)命令,表示这是一个设置文本外观属性的转义序列,如文本颜色、显示方式等。
例如:\033[31mHello, world!\033[0m
- \033[31m:表示后续的文本输出为红色。
- \033[0m:表示重置之前设置的外观属性。
在Python中使用ANSI转义序列输出彩色文本
在Python中,可以使用print函数结合ANSI转义序列来输出彩色文本。例如:在终端输出红色的“Hello, world!”
print('\033[31mHello, world!\033[0m')
具体内容会在下文详细解释。
使用Python库简化彩色文本输出
虽然直接使用ANSI转义序列可以实现彩色文本输出,但这种方式需要记忆大量的转义序列,且代码可读性较差。因此,Python社区开发了一些第三方库来简化这一过程,如colorama和termcolor等。
- colorama:提供了一个易于使用的API来控制终端输出的颜色和样式。它封装了ANSI转义序列,使得用户可以通过简单的函数调用来设置文本颜色、背景色、加粗等属性。
- termcolor:另一个流行的Python库,也提供了类似的功能。它允许用户通过简单的函数调用来设置文本的颜色和样式,并自动处理ANSI转义序列的插入和重置。
四、SGR 参数
SGR 参数设置显示属性。可以在同一个序列中设置多个属性,它们之间用分号分隔。每个显示属性都会持续生效,直到后续的SGR将其重置。如果没有给出任何代码,则CSI m被视为CSI 0 m(重置/正常)。
- SGR代码
下表列出一些常用的SGR参数代码
| 代码 | 命令 | 说明 |
|---|---|---|
| 0 | Reset | 重围(关闭)之前所有设置的属性。 |
| 1 | Bold | 加粗(变亮)显示 |
| 2 | Dim | 细化(变暗)显示 |
| 3 | Itatic | 斜体显示 |
| 4 | Underline | 显示下划线 |
| 5 | Slow blink | 慢闪(小于150次/分钟,多数终端不支持) |
| 6 | Rapid blink | 快闪(大于150次/分钟,绝大多数终端不支持) |
| 7 | Reverse | 反转显示 |
| 8 | Hide | 隐藏(无显示) |
| 9 | Strike | 删除线 |
| 21 | Doubly underlined | 双下划线 |
| 30–37 | Foreground Color | 前景色 |
| 38 | Set foreground Color | 设置前景色,256色:5;n,真彩色:2;r;g;b |
| 39 | Default foreground Color | 默认的前景色 |
| 40–47 | Background Color | 背景色 |
| 48 | Set background Color | 设置背景色,256色:5;n,真彩色:2;r;g;b |
| 49 | Default background Color | Background Color默认的背景色 |
| 53 | Overline | 上划线 |
| 90–97 | Bright foreground Color | 亮前景色 |
| 100–107 | Bright background Color | 亮背景色 |
- 示例:不同的显示风格
print('\n测试不同风格的文本...')
print('\033[0;31m正常!\033[0m')
print('\033[1;31m粗体!\033[0m')
print('\033[2;31m变暗!\033[0m')
print('\033[3;31m斜斜体!\033[0m')
print('\033[4;31m下划线!\033[0m')
# !闪烁需要在Windows终端中测试,在VS Code的终端中无效。
print('\033[5;31m闪烁!\033[0m') # 小于150次/秒
# !快闪需要在Windows终端中测试,在VS Code的终端中无效。
# 在Windows终端中快闪和慢闪烁效果一样。
print('\033[6;31m快闪!\033[0m') # 大于150次/秒
print('\033[7;31m反色!\033[0m')
# 隐藏风格:没有显示输出但仍占用对应的位置。
print('\033[8;31m隐藏!\033[0m(已隐藏,无显示输出)')
print('\033[9;31m删除!\033[0m')
print('\033[21;31m双下划线!\033[0m')
# 上划线测试需要在前面加一个空行,否则会和上一行的双下划线输出重叠。
print('\n\033[53;31m上划线!\033[0m')
# 组合测试:黄底红字,粗体、斜体、下划线、闪烁、反色、删除线和上划线。
# !反色后最终显示为红底黄字。
# *粗体和变暗不能同时使用,下划线和双下划线不能同时使用。
print('组合测试:粗体、斜体、下划线、闪烁、反色、删除线和上划线...')
print('\033[1;3;4;5;7;9;53;31;43m组合测试!\033[0m')
运行结果:
Windows命令提示符和PowerShell中的显示效果:

VS Code 中终端(Python Debug Console,默认白色主题)中的显示效果:

VS Code 中终端(Python Debug Console,默认黑色主题)中的显示效果:

注意:
- Windows终端中,当前景色和背景色相同时,字体无法显示。
- VS Code的终端中,当前景色和背景色相近时,前景色会调整为黑色或白色。
- VS Code的终端中显示效果和主题相关。
- 在VS Code的有些主题下,显示颜色和设置的颜色不一致。
- 直接使用ANSI转义序列和第三方库都存在以上的问题。
五、输出8(3-Bit)/16色(4-Bit)文本
ANSI转义序列的原始规范中仅有8种颜色,并为它们命名。SGR参数30–37用于选择前景色,而40–47用于选择背景色。许多终端将“加粗”(SGR代码1)实现为更亮的颜色,而不是不同的字体,从而提供了另外8种前景色。通常,这些更亮的颜色不能作为背景色使用,但有时可以通过反显视频(SGR代码7)来实现。例如:要获得黑底白字,使用ESC[30;47m;要获得红色,使用ESC[31m;要获得亮红色,使用ESC[1;31m。要将颜色重置为默认值,可以使用ESC[39;49m(某些终端不支持),或重置所有属性,使用ESC[0m。后来的终端增加了使用90–97和100–107直接指定“亮色”的功能。
- 颜色名称
当硬件开始使用8位数字模拟转换器(DAC)时,一些软件将这些颜色名称分配了24位颜色值。下面的图表显示了某些常见硬件和软件的24位颜色值。

- 示例:16种前景色和背景色
16种颜色包括8种基本色和8种明亮色,下面的示例输出16种前景色和背景色。
# 输出8种标准颜色:黑色、红色、绿色、黄色、蓝色、紫色、青色和白色
print('\n测试8种标准颜色...')
for i in range(0, 8): # 30~37为前景色,无背景色
print(f'\033[{i+30}mHello, world!\033[0m') # 30~37为前景色
for i in range(0, 8): # 40~47为背景色,黄色字体
print(f'\033[{i+40}mHello, world!\033[0m') # 40~47为背景色
# 输出8种高亮颜色:亮黑色、亮红色、亮绿色、亮黄色、亮蓝色、亮紫色、
# 亮青色和亮白色
print('\n测试8种高亮颜色...')
for i in range(0, 8): # 90~97为前景色,无背景色
print(f'\033[{i+90}mHello, world!\033[0m') # 90~97为前景色
for i in range(0, 8): # 100~107为背景色,黄色字体
print(f'\033[{i+100}mHello, world!\033[0m') # 100~107为背景色
运行结果:
Windows命令提示符和PowerShell中的显示效果:

VS Code 中终端(Python Debug Console,默认黑色主题)中的显示效果:

六、输出256色(8-Bit)文本
当图形卡上256色查找表变得普遍时,为了从预定义的256种颜色中选择颜色,添加了转义序列:
ESC[ 38;5;⟨n⟩ m 选择前景色
ESC[ 48;5;⟨n⟩ m 选择背景色
其中,⟨n⟩是一个数字,代表颜色的索引号,范围从0到255,具体含义如下:
0-7:标准颜色(与ESC [ 30–37 m中的颜色相同)
8-15:高亮颜色(与ESC [ 90–97 m中的颜色相同)
16-231:6x6x6的立方体(216种颜色),计算方式为:16 + 36 × r + 6 × g + b(其中0 ≤ r, g, b ≤ 5)
232-255:从黑色到白色的24级灰度
- 256色颜色表

- 示例:输出256颜色表
# *显示颜色的代码,背景色设置为对应的颜色。
print('\n测试256色显示...')
print(' 前景色: ESC[38;5;#m')
print(' 背景色: ESC[48;5;#m')
# 0-8:标准颜色
print('输出标准颜色:')
for i in range(0, 8):
print(f'\033[48;5;{i}m {i:02d}', end=' ')
print('\033[0m') # 恢复默认颜色
# 9-15:高亮颜色
print('输出高亮颜色:')
for i in range(8, 16):
print(f'\033[48;5;{i}m {i:02d}', end=' ')
print('\033[0m')
# 16-231:216种颜色,彩色。
print('输出216种彩色:')
for i in range(16, 232):
print(f'\033[48;5;{i}m {i:03d}', end=' ')
if (i-16) % 12 == 11: # 每12个换行一次
print('\033[0m')
# 232-255:24阶灰度色
print('输出24阶灰度色:')
for i in range(232, 244):
print(f'\033[48;5;{i}m {i:03d}', end=' ')
print('\033[0m')
for i in range(244, 256):
print(f'\033[48;5;{i}m {i:03d}', end=' ')
print('\033[0m')
运行如下:
Windows命令提示符和PowerShell中的显示效果:

VS Code 中终端(Python Debug Console,主题:Github Dark Default)中的显示效果:

七、输出真彩色(24-Bit)文本
随着支持16至24位色彩的“真彩色”显卡变得普及,Xterm、KDE的Konsole、iTerm以及所有基于libvte的终端(包括GNOME Terminal)都支持24位前景色和背景色的设置。
ESC[ 38;2;⟨r⟩;⟨g⟩;⟨b⟩ m 用于选择RGB前景色,而ESC[ 48;2;⟨r⟩;⟨g⟩;⟨b⟩ m 用于选择RGB背景色。
- 示例:输出部分真色彩颜色表
# *显示颜色的RGB值,背景色设置为对应的颜色。
print('\n测试RGB颜色...')
# 考虑到测试的效率,只输出4*4*4=64种颜色
for r in range(0, 256):
if r % 64 != 0: # 每一重循环只输出4种颜色
continue
for g in range(0, 256):
if g % 64 != 0:
continue
for b in range(0, 256):
if b % 64 != 0:
continue
print(f'\033[48;2;{r};{g};{b}m ({r:03d},{g:03d},{b:03d})',
end=' ')
# 每行输出4种颜色
print('\033[0m')
print('') # 换行
运行结果:
Windows命令提示符和PowerShell中的显示效果:

VS Code 中终端(Python Debug Console,主题:Github Dark Default)中的显示效果:

八、使用 colorama 输出16色文本
colorama 介绍
Colorama是一个专为Python设计的库,旨在增强终端输出的视觉效果。Colorama库的开发初衷是为了解决在Windows系统上终端输出颜色受限的问题。在Colorama出现之前,Windows控制台对于ANSI转义序列的支持有限,这限制了开发者在终端中输出彩色文本的能力。Colorama通过转换ANSI转义序列为Windows系统可以理解的win32调用,实现了跨平台的彩色输出功能。
- 跨平台支持:Colorama的最大特点是支持跨平台。无论是Windows、Linux还是macOS,Colorama都能正常工作,这使得它在众多终端颜色库中脱颖而出。
- 简单易用:Colorama提供了简单易用的接口,允许开发者通过简单的函数调用即可实现彩色文本、背景色和文本样式的控制。Colorama定义了一系列颜色常量和样式常量,开发者只需在打印文本时添加这些常量即可改变文本的颜色和样式。
- 丰富的功能:除了支持基本的文本颜色和背景色设置外,Colorama还支持设置文本的样式,如加粗、斜体等。
Colorama库虽然功能强大且实用,但仍存在一些不足之处::
- 不支持所有终端:某些终端可能不支持ANSI转义序列,这是Colorama实现彩色输出的基础。在这些终端上,Colorama可能无法正常工作或显示效果不佳。
- 只支持基本颜色:Colorama只支持在终端上显示8种基本的颜色,不支持256色。
- 只支持两种风格:明亮(粗体)和暗色。
总之,Colorama是一个强大且实用的Python库,它让终端输出变得更加丰富多彩。无论是开发命令行工具、编写脚本还是记录日志,Colorama都能为项目增色不少。
使用colorama
-
安装colorama库:colorama库不是Python的标准库,使用前需要安装,安装的命令如下:
pip install colorama -
导入colorama库:使用时先导入colorama库
from colorama import just_fix_windows_console, Fore, Back, Style- just_fix_windows_console:用于修复Windows命令行中的颜色显示问题。
- Fore:提供一系列前景色(文本颜色)的选项。
- Back:提供一系列背景色的选项。
- Style:提供文本样式选项,如加粗、闪烁等。
-
初始化colorama库:如代码中注释所述,早期的Windows需要额外的初始化操作才能输出彩色文本。
# 注意: # 在Windows系统下,Win10(更新版本1511)之前的终端不支持彩色输出,需要 # 调用colorama库的just_fix_windows_console函数来修复它。 # Win10(更新版本1511)之后的终端已经支持彩色输出,不需要调用这个函数。 # 在其他操作系统中,just_fix_windows_console函数什么也不做。 print("初始化 colorama: 修复Windows(Win10之前)终端彩色输出问题...") just_fix_windows_console() -
输出彩色的文本:8种标准颜色的前景色和背景色,8种高亮颜色的前景色和背景色,
print('使用colorama库设置颜色...') print('输出8种标准颜色...') print(Fore.BLACK + 'Hello, World!' + Style.RESET_ALL + ' ' + # 前景色 Back.BLACK + 'Hello, World!' + Style.RESET_ALL) # 背景色 print(Fore.RED + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.RED + 'Hello, World!' + Style.RESET_ALL) print(Fore.GREEN + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.GREEN + 'Hello, World!' + Style.RESET_ALL) print(Fore.YELLOW + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.YELLOW + 'Hello, World!' + Style.RESET_ALL) print(Fore.BLUE + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.BLUE + 'Hello, World!' + Style.RESET_ALL) print(Fore.MAGENTA + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.MAGENTA + 'Hello, World!' + Style.RESET_ALL) print(Fore.CYAN + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.CYAN + 'Hello, World!' + Style.RESET_ALL) print(Fore.WHITE + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.WHITE + 'Hello, World!' + Style.RESET_ALL) print('输出8种明亮颜色...') print(Fore.LIGHTBLACK_EX + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.LIGHTBLACK_EX + 'Hello, World!' + Style.RESET_ALL) print(Fore.LIGHTRED_EX + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.LIGHTRED_EX + 'Hello, World!' + Style.RESET_ALL) print(Fore.LIGHTGREEN_EX + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.LIGHTGREEN_EX + 'Hello, World!' + Style.RESET_ALL) print(Fore.LIGHTYELLOW_EX + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.LIGHTYELLOW_EX + 'Hello, World!' + Style.RESET_ALL) print(Fore.LIGHTBLUE_EX + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.LIGHTBLUE_EX + 'Hello, World!' + Style.RESET_ALL) print(Fore.LIGHTMAGENTA_EX + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.LIGHTMAGENTA_EX + 'Hello, World!' + Style.RESET_ALL) print(Fore.LIGHTCYAN_EX + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.LIGHTCYAN_EX + 'Hello, World!' + Style.RESET_ALL) print(Fore.LIGHTWHITE_EX + 'Hello, World!' + Style.RESET_ALL + ' ' + Back.LIGHTWHITE_EX + 'Hello, World!' + Style.RESET_ALL)
运行结果:

-
输出不同风格的文本:正常,高亮,暗色,只支持这两种风格。
print('使用colorama库设置样式...') # 正常 print(Style.NORMAL + Fore.RED + 'Hello, World!' + Style.RESET_ALL) # 高亮 print(Style.BRIGHT + Fore.RED + 'Hello, World!' + Style.RESET_ALL) # 变暗 print(Style.DIM + Fore.RED + 'Hello, World!' + Style.RESET_ALL)
运行结果:

-
移动光标:colorama库还提供控制光标位置的功能,包括:光标上移,光标下移,光标左移,光标右移,光标移动到指定位置。
print('使用colorama库控制光标位置...') print("光标上移、下移、左移、右移...") print(Cursor.FORWARD(20) + Fore.GREEN + "向前20个字" + Cursor.BACK(30) + Fore.GREEN + "向后30个字符" + Cursor.DOWN(4) + Fore.GREEN + "向下4行" + Cursor.UP(2) + Fore.GREEN + "向上2行" + Style.RESET_ALL) print('移动光标到指定的行列...') print(Cursor.POS(10, 10) + Fore.GREEN + "光标移动到第10行第10列") print(Style.RESET_ALL) # 重置样式运行结果:

九、使用 termcolor 输出16色文本
termcolor 介绍
termcolor是一个简洁而强大的Python库,它允许开发者在命令行接口中为文本添加各种颜色和样式,从而使输出信息更易读、更具吸引力。
-
文本着色功能:
termcolor提供了多种预定义的颜色选项,例如红色、绿色、黄色、蓝色、洋红色、青色、白色和黑色等。你可以使用这些颜色来为你的文本添加丰富的色彩。此外,它还支持背景颜色的设置,允许你在特定的背景色上输出文本,从而进一步增强文本的可读性和视觉效果。 -
文本样式支持:
除了颜色之外,termcolor还支持多种文本样式,如加粗、下划线、闪烁等。这些样式可以单独使用,也可以组合使用,以创建更加多样化的输出效果。 -
跨平台兼容性:
termcolor旨在与多种终端和操作系统兼容,包括Windows、Linux和macOS等。它能够自动检测当前终端是否支持颜色输出,并相应地调整其行为。这意味着你可以在不同的终端和操作系统上使用termcolor,而无需担心兼容性问题。 -
易于使用的API:
termcolor提供了简洁而直观的API,使得添加颜色和样式变得非常容易。你可以使用colored()函数来返回着色后的字符串,或者直接使用cprint()函数打印着色后的文本。这些函数的使用非常简单,无需复杂的配置或学习成本。
termcolor也存在一些不足之处::
- 不支持所有终端:不支持Win10以前的Windows版本,可以在这个早期的Windows版本可以使用Colorama库。
- 只支持基本颜色:termcolor只支持在终端上显示8种基本的颜色,不支持256色。
使用termcolor
-
安装termcolor库:termcolor库不是Python的标准库,使用前需要安装,安装的命令如下:
pip install termcolor -
导入termcolor库:使用时先导入termcolor库
from termcolor import colored, cprintcolored:一个用于生成带有颜色和样式字符串的函数。cprint:一个用于直接在控制台打印带有颜色和样式文本的函数。
-
输出前景色:8种标准的前景色和8种高亮的前景色。
print('\n测试标准前景色...') print(colored('Hello, World!', 'red')) # 红色文本 print(colored('Hello, World!', 'green')) # 绿色文本 print(colored('Hello, World!', 'blue')) # 蓝色文本 print(colored('Hello, World!', 'yellow')) # 黄色文本 print(colored('Hello, World!', 'magenta')) # 品红文本 print(colored('Hello, World!', 'cyan')) # 青色文本 print(colored('Hello, World!', 'white')) # 白色文本 print(colored('Hello, World!', 'grey')) # 灰色文本 print(colored('Hello, World!', 'black')) # 黑色文本 print('\n测试前景色,亮色...') print(colored('Hello, World!', 'light_red')) # 浅红色文本 print(colored('Hello, World!', 'light_green')) # 浅绿色文本 print(colored('Hello, World!', 'light_blue')) # 浅蓝色文本 print(colored('Hello, World!', 'light_yellow')) # 浅黄色文本 print(colored('Hello, World!', 'light_magenta')) # 浅品红文本 print(colored('Hello, World!', 'light_cyan')) # 浅青色文本 print(colored('Hello, World!', 'light_grey')) # 浅灰色文本 print(colored('Hello, World!', 'dark_grey')) # 深灰色文本 -
输出背景色:8种标准的背景色和8种高亮的背景色。
print('\n测试背景色...') print(colored('Hello, World!', 'white', 'on_red')) # 红色文本 print(colored('Hello, World!', 'white', 'on_green')) # 绿色文本 print(colored('Hello, World!', 'white', 'on_blue')) # 蓝色文本 print(colored('Hello, World!', 'white', 'on_yellow')) # 黄色文本 print(colored('Hello, World!', 'white', 'on_magenta')) # 品红文本 print(colored('Hello, World!', 'white', 'on_cyan')) # 青色文本 print(colored('Hello, World!', 'white', 'on_white')) # 白色文本 print(colored('Hello, World!', 'white', 'on_grey')) # 灰色文本 print(colored('Hello, World!', 'white', 'on_black')) # 黑色文本 print('\n测试背景色,亮色...') print(colored('Hello, World!', 'white', 'on_light_red')) # 浅红色文本 print(colored('Hello, World!', 'white', 'on_light_green')) # 浅绿色文本 print(colored('Hello, World!', 'white', 'on_light_blue')) # 浅蓝色文本 print(colored('Hello, World!', 'white', 'on_light_yellow')) # 浅黄色文本 print(colored('Hello, World!', 'white', 'on_light_magenta')) # 浅品红文本 print(colored('Hello, World!', 'white', 'on_light_cyan')) # 浅青色文本 print(colored('Hello, World!', 'white', 'on_light_grey')) # 浅灰色文本 print(colored('Hello, World!', 'white', 'on_dark_grey')) # 深灰色文本 -
输出不同风格的文本:高亮,暗色,下划线,闪烁,反色,隐藏和删除线。
print('\n测试显示风格...') cprint('粗体黄色文本!', 'yellow', attrs=['bold']) # 粗体黄色文本 cprint('暗色黄色文!', 'yellow', attrs=['dark']) # 暗色黄色文本 cprint('下划线黄色文本!', 'yellow', attrs=['underline']) # 下划线黄色文本 # !闪烁的黄色文本,需要在Windows终端上测试,闪烁效果有效 # 在VS Code中测试,闪烁效果无效 cprint('闪烁黄色文本!', 'yellow', attrs=['blink']) cprint('反色黄色文本!', 'yellow', attrs=['reverse']) # 反色显示的黄色文本 cprint('隐藏的黄色文本!', 'yellow', attrs=['concealed']) # 隐藏的黄色文本 print('(隐藏的黄色文本)') cprint('删除线黄色文本!', 'yellow', attrs=['strike']) # 删除线黄色文本 # 组合使用,同时设置多种属性 # 黄色高亮文本,洋红色背景,带删除线 # !注意:在VS Code中,设置了背景颜色后,前景色会变成黑色 print(colored('组合测试!', 'yellow', 'on_magenta', attrs=['bold', 'strike']))运行结果:

十、测试程序的源码
本文的完整源码下载地址:Python输出彩色文本(ANSI转义,256色,真彩色,colorama,termcolor)资源-CSDN文库
2万+

被折叠的 条评论
为什么被折叠?



