ANSI转义颜色码在Python终端失效问题求助
解决Python控制台无法显示ANSI颜色的问题
这个问题其实挺常见的,核心原因是并非所有终端/控制台环境都支持ANSI转义序列——你用的Atom Terminal本身就对这类转义码做了支持,所以能正常显示彩色,但Python自带的控制台(比如Windows默认的Command Prompt、Python IDLE)通常默认不解析这些转义字符,只会把\033[95m这类代码直接打印出来。
下面给你几个可行的解决方案:
方案1:启用Windows终端的ANSI支持(适用于Windows 10 1511及以上版本)
如果你的系统是较新的Windows版本,可以通过一行代码触发终端加载ANSI支持,修改后的代码如下:
import os # 触发Windows终端启用ANSI转义序列支持 os.system('') class color: HEADER = '\033[95m' BLUE = '\033[94m' CYAN = '\033[96m' GREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' BOLD = '\033[1m' UNDERLINE = '\033[4m' # 记得加上ENDC重置颜色,避免后续输入也带着颜色 choose = input(color.HEADER + "Colored Text" + color.ENDC)
方案2:使用colorama库(跨平台更可靠)
colorama是专门解决跨平台终端颜色显示问题的库,它会自动处理Windows环境下的兼容性,用起来更省心:
- 先安装库:
pip install colorama
- 修改代码如下:
from colorama import init, Fore, Style # 初始化colorama,autoreset=True可以自动帮你重置颜色,不用每次手动加ENDC init(autoreset=True) class color: HEADER = Fore.MAGENTA # 对应原来的95m洋红色 BLUE = Fore.BLUE CYAN = Fore.CYAN GREEN = Fore.GREEN WARNING = Fore.YELLOW # 对应原来的93m黄色 FAIL = Fore.RED ENDC = Style.RESET_ALL BOLD = Style.BRIGHT UNDERLINE = Style.UNDERLINE choose = input(color.HEADER + "Colored Text")
特殊情况:Python IDLE控制台
如果你的"Python控制台"指的是Python自带的IDLE,那很遗憾——IDLE本身完全不支持ANSI转义序列,无论怎么设置都没法显示颜色,只能换用支持的终端(比如Windows Terminal、PowerShell,或者你之前用的Atom Terminal)。
内容的提问来源于stack exchange,提问作者LQ MK OnFire
相关产品推荐
相关产品推荐

