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

Python 3中如何修改整个终端的文本颜色?

Python 修改终端全局文本颜色的实现方法

Windows 平台

你提到的win32api.SetSysColors是用于修改系统全局UI元素的颜色,和终端窗口的文本颜色无关,不适合用来实现你的需求。以下两种方法可以修改Windows终端(cmd/PowerShell)的全局文本颜色:

  • 调用系统color命令:通过Python执行系统命令直接修改终端默认前景和背景色,格式为color [背景色][前景色],颜色取值为0-9/A-F(0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白)。示例代码:
    import os
    # 设置黑色背景(0)+ 淡绿前景(A)
    os.system('color 0A')
    # 后续所有输出都会使用这个颜色
    print("当前终端全局文本颜色已修改")
    
  • 使用ctypes调用Windows API:更灵活地直接操作终端句柄,修改当前会话的文本颜色:
    import ctypes
    
    # 获取标准输出句柄
    STD_OUTPUT_HANDLE = -11
    console_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
    
    # 设置颜色:前景色 | 背景色,例:淡绿前景(0x0A)+ 黑色背景(0x00)
    ctypes.windll.kernel32.SetConsoleTextAttribute(console_handle, 0x0A)
    
    # 后续输出将沿用此颜色
    print("全局颜色已更新,该行显示为淡绿色")
    

Linux/macOS 平台

可以通过ANSI转义序列设置终端的默认前景和背景色,修改后后续所有输出都会使用该颜色:

# 设置默认前景色为绿色(32)、背景色为黑色(40)
print("\033[32;40m")
# 测试输出
print("终端全局文本颜色已修改,该行是绿色前景+黑色背景")

# 若要恢复默认颜色,执行以下代码
# print("\033[0m")

注意事项

  • 上述所有方法仅对当前终端会话有效,关闭终端后会恢复系统默认设置。
  • 若要永久修改终端颜色,需修改终端的配置文件(如Windows终端的settings.json、Linux的.bashrc/.zshrc等),Python脚本不建议自动修改用户配置文件,避免影响用户系统设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 06:02:16