You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中通过命令批量设置后续所有输出文本的颜色?

实现全局print输出颜色切换的解决方案

针对你需要通过change_color()命令统一设置后续所有print输出颜色的需求,这里提供基于colorama的可靠实现方案,解决os.system('color')适配性差的问题:

实现步骤

  1. 先安装colorama库:
pip install colorama
  1. 核心代码实现:
from colorama import init, Fore
import builtins

# 初始化colorama,关闭自动重置以保持颜色状态
init(autoreset=False)

# 默认前景色为白色
current_fore_color = Fore.WHITE

def change_color(color_name):
    global current_fore_color
    # 建立颜色名称与colorama常量的映射
    color_mapping = {
        'red': Fore.RED,
        'green': Fore.GREEN,
        'blue': Fore.BLUE,
        'yellow': Fore.YELLOW,
        'cyan': Fore.CYAN,
        'magenta': Fore.MAGENTA,
        'black': Fore.BLACK,
        'white': Fore.WHITE
    }
    # 切换到指定颜色,未知颜色则重置为白色
    current_fore_color = color_mapping.get(color_name, Fore.WHITE)

# 保存原生print函数
original_print = builtins.print

# 重写print函数,自动应用当前颜色
def colored_print(*args, **kwargs):
    original_print(current_fore_color, end='')
    original_print(*args, **kwargs)

# 替换全局print为带颜色的版本
builtins.print = colored_print

# 测试示例
change_color('red')
print("Hello world!")
print("Hi world")

change_color('green')
print("Hello world!")
print("Hi world")

# 如需恢复原生print,执行以下代码
# builtins.print = original_print
# print("回到默认颜色输出")

方案优势

  • 跨平台适配:支持Windows、Linux、macOS终端,同时兼容VS Code、PyCharm等IDE的终端环境,不受系统或主题深色/浅色模式影响。
  • 灵活控制:通过change_color()随时切换后续所有print的颜色,无需在每个print语句中手动添加颜色代码。
  • 兼容性强:基于ANSI转义码实现颜色控制,比os.system('color')更精准,不会修改整个终端的全局颜色设置。

补充说明

  • 如果需要临时绕过全局颜色设置,直接调用original_print()即可输出原生颜色的内容。
  • 若要设置背景色,可以扩展代码增加change_bg_color()函数,使用Back常量替换Fore即可。

内容的提问来源于stack exchange,提问作者Leonardo Ricci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 22:22:20