为什么Python没有颜色输出?

0 投票
2 回答
813 浏览
提问于 2025-04-15 18:16

我有一个批处理文件,它用来调用 .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上有没有类似的工具。

撰写回答