在 Python 中要实现带颜色的打印输出,不同的操作系统和使用场景有不同的实现方法,下面为你详细介绍几种常见的方式。
1. 在 ANSI 终端(类 Unix 系统,如 Linux、macOS)使用 ANSI 转义序列
ANSI 转义序列是一种用于控制终端文本颜色、样式等显示效果的特殊字符序列。在类 Unix 系统的终端中,Python 可以直接使用这些序列来实现带颜色的打印。
示例代码
# 定义颜色代码
BLACK = '\033[30m'
RED = '\033[31m'
GREEN = '\033[32m'
YELLOW = '\033[33m'
BLUE = '\033[34m'
MAGENTA = '\033[35m'
CYAN = '\033[36m'
WHITE = '\033[37m'
RESET = '\033[0m'
# 打印不同颜色的文本
print(f"{RED}这是红色的文本{RESET}")
print(f"{GREEN}这是绿色的文本{RESET}")
print(f"{YELLOW}这是黄色的文本{RESET}")
代码解释
- 每个颜色代码都是以
\033[开头,后面跟着具体的颜色编号,最后以m结尾。 RESET代码用于将文本样式恢复到默认状态,避免后续文本也受到前面颜色设置的影响。
2. 在 Windows 系统中使用 colorama 库
在 Windows 系统的命令提示符中,默认不支持 ANSI 转义序列,需要使用 colorama 库来实现跨平台的颜色打印。
安装 colorama 库
pip install colorama
示例代码
from colorama import init, Fore, Back, Style
# 初始化 colorama
init(autoreset=True)
# 打印不同颜色的文本
print(Fore.RED + "这是红色的文本")
print(Fore.GREEN + "这是绿色的文本")
print(Fore.YELLOW + "这是黄色的文本")
代码解释
init(autoreset=True):初始化colorama库,并设置autoreset=True表示每次打印后自动恢复默认样式。Fore类用于设置文本前景色,Back类用于设置文本背景色,Style类用于设置文本样式。
3. 结合对齐和颜色打印
如果你想同时实现带颜色和指定长度、对齐方式的打印,可以将前面介绍的字符串格式化方法与颜色设置结合起来。
示例代码
from colorama import init, Fore, Back, Style
init(autoreset=True)
text = "Hello"
# 左对齐,长度为 10,用 * 填充,红色文本
left_aligned = f"{Fore.RED}{text:*<10}{Style.RESET_ALL}"
print(left_aligned)
# 右对齐,长度为 10,用 * 填充,绿色文本
right_aligned = f"{Fore.GREEN}{text:*>10}{Style.RESET_ALL}"
print(right_aligned)
# 居中对齐,长度为 10,用 * 填充,黄色文本
center_aligned = f"{Fore.YELLOW}{text:*^10}{Style.RESET_ALL}"
print(center_aligned)
代码解释
在 f-string 中先设置颜色代码,然后进行字符串格式化,最后使用 Style.RESET_ALL 恢复默认样式。这样就可以实现带颜色的对齐打印。