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

如何用Python在PowerShell/Windows Terminal通过ANSI转义码输出彩色文本?

解决Python输出ANSI转义码未被终端解析的问题

你这是踩了个语法环境的小坑——你写的$([char]0x1b)是PowerShell专属的语法,用来生成ESC(ASCII码27)控制字符,但Python根本不识别这个写法,所以它只会原封不动地把整个字符串输出,而不会把这段PowerShell代码转换成对应的控制字符。

为啥直接在终端输入那段字符串有效?因为那是PowerShell帮你解析了$([char]0x1b),把它替换成了真正的ESC字符,终端收到后才能识别后续的ANSI颜色码。但Python运行时不会做这个转换,就出现了“终端直接输有效、Python输出无效”的矛盾情况。

给你两个简单可行的解决方案:

方案1:用Python原生的ESC转义字符

Python支持用\033或者\x1b直接表示ESC字符,把它们写在字符串里就行:

message = "\033[30;41m YOUR_TEXT_HERE \033[0m"
print(message)

方案2:用chr()生成ESC字符

如果觉得转义字符不够直观,可以用chr(27)生成ESC字符,再拼接成完整的颜色控制字符串:

esc_char = chr(27)
message = f"{esc_char}[30;41m YOUR_TEXT_HERE {esc_char}[0m"
print(message)

这两种写法都能让Python输出真正的ANSI控制序列,终端收到后就会正确显示黑字红底的效果了。

内容的提问来源于stack exchange,提问作者Ystan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:25:25