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
相关产品推荐
相关产品推荐

