我正在寻找可以在 Windows 下添加 ANSI 支持的 Python 模块。
这意味着在导入模块后,如果您输出 ANSI 转义字符串,它们将相应地出现。
我正在寻找可以在 Windows 下添加 ANSI 支持的 Python 模块。
这意味着在导入模块后,如果您输出 ANSI 转义字符串,它们将相应地出现。
您最好的选择可能是使用colorama模块。
事实上,我相信 Windows 控制台本身并不支持 ANSI 颜色。colorama 通过截取 ANSI 序列并执行适当的 Windows 颜色更改调用来解决这个难题。这样,您的代码可以非常便携,因为它可以在 Windows 和 ANSI 兼容的终端上以相同的方式打印颜色。
有两个 python 模块可以做到这一点colorama
,而tendo.ansiterm
模块最初是为waf
.
通过最初的测试表明它colorama
更加成熟,即使它需要两行代码而不是一行。
import sys
try:
import colorama
colorama.init()
except:
try:
import tendo.ansiterm
except:
pass
sys.stdout.write"\033[33mYellow Submarine"
sys.stderr.write"\033[31mred, red , wine!"
现在,两者都将正常工作,但如果您尝试仅重定向 stderr 或 stdout 之一,ansiterm 会将 ANSI 代码输出到屏幕并重定向输出。
我不确定,但我怀疑正确的行为是在输出 si 不是 tty 时剥离 ANSI 代码,您不想在日志文件中看到 ANSI 转义。
您还可以使用使用colorama实现可移植性的彩色。