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

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系统,用法更简洁:

  1. 先安装库:
pip install colorama
  1. 编写代码:
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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:52:08