为什么Python没有颜色输出?
我有一个批处理文件,它用来调用 .Net 解决方案来构建项目。在命令行窗口中,警告和错误会用不同的颜色显示,警告是绿色的,错误是红色的,看起来很不错。但是,当我从 Python 调用这个批处理文件时,所有的输出都没有颜色,都是同一种颜色。请问有没有办法让 Python 也能显示这些颜色呢?我调用批处理文件的方式是这样的:
p = subprocess.Popen('manualBuild.bat', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
print line,
retval = p.wait()
谢谢
2 个回答
0
如果这是在UNIX系统上,我会建议你不要把输出放在一个变量里,而是让程序直接打印出来(也就是说,不要把stdout
传给子进程)。你可以试试看这样做吗?
3
有些程序会检查自己是否真的连接到了控制台或终端,如果没有连接,它们就会停止改变一些属性,这样可以让输出结果更容易处理和解析。我知道在*unix系统上可以用 unbuffer
来欺骗程序,但我不太清楚在Windows上有没有类似的工具。