Python中bcolors无法正常打印彩色文本问题求助
解决Python打印彩色文本显示转义码而非颜色的问题
出现←[92mhello←[0m这类转义码而非彩色文字,核心原因是当前使用的终端不支持ANSI转义序列,而VS Code集成终端默认支持这类转义码,所以能正常显示颜色。
解决方案:
- 使用colorama库适配跨终端:这是专门解决跨平台终端颜色显示问题的库,自动处理不同终端的ANSI支持情况。
- 安装库:
pip install colorama - 修改代码,添加初始化:
from colorama import init init(autoreset=True) # autoreset=True可自动重置颜色,无需每次手动加ENDC class bcolors: PURP = '\033[95m' OKBLUE = '\033[94m' OKCYAN = '\033[96m' OKGREEN = '\033[92m' LIGHTYELLOW = '\033[93m' RED = '\033[91m' ENDC = '\033[0m' BOLD = '\033[1m' UNDERLINE = '\033[4m' print(f"{bcolors.OKGREEN}hello{bcolors.ENDC}")
- 安装库:
- 切换支持ANSI的终端:比如改用PowerShell、Git Bash或VS Code集成终端,这些终端原生支持ANSI转义序列,无需额外配置。
- Windows cmd终端启用ANSI支持:如果必须使用cmd,可以通过修改注册表开启支持:
- 打开注册表编辑器(输入
regedit启动) - 定位到
HKEY_CURRENT_USER\Console - 创建或修改
DWORD类型的VirtualTerminalLevel,设置值为1 - 重启cmd后生效
- 打开注册表编辑器(输入
内容的提问来源于stack exchange,提问作者oas333
相关产品推荐
相关产品推荐

