Python模块在Windows上为stdout启用ANSI颜色?教程
我正在寻找一个可以在Windows下添加ANSI支持的Python模块.
这意味着在导入模块后,如果输出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转义.