给print来点颜色

在 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 恢复默认样式。这样就可以实现带颜色的对齐打印。

使用 Hugo 构建
主题 StackJimmy 设计