Windows 11下Python使用ANSI转义序列实现文本加粗失效求助
解决Windows 11下Python输出加粗文本的问题
你的问题出在Windows默认控制台(CMD)默认不支持ANSI转义序列,导致转义码被当成普通字符输出,出现?[1m这类乱码。以下是两种可行的解决方案:
方法1:启用控制台ANSI支持
通过调用Windows系统API手动开启控制台的ANSI转义支持,无需额外安装库:
import ctypes # 获取标准输出句柄并设置控制台模式以启用ANSI转义 kernel32 = ctypes.WinDLL('kernel32') stdout_handle = kernel32.GetStdHandle(-11) kernel32.SetConsoleMode(stdout_handle, 7) # 现在可以正常输出加粗文本 print("\033[1mHello, World!\033[0m")
方法2:使用colorama库(更推荐)
colorama是专门处理跨平台终端格式的库,自动适配Windows系统,用法更简洁:
- 先安装库:
pip install colorama
- 编写代码:
from colorama import init, Style # 初始化colorama,自动转换ANSI序列适配Windows init(convert=True) # 方式1:用colorama提供的样式常量 print(Style.BRIGHT + "Hello, World!" + Style.RESET_ALL) # 方式2:初始化后也可以直接用原生ANSI序列 print("\033[1mHello, World!\033[0m")
另外,如果你使用的是Windows Terminal(而非传统CMD),默认已经支持ANSI转义序列,直接运行你的原代码就能生效。
内容的提问来源于stack exchange,提问作者idea steps
相关产品推荐
相关产品推荐

