为什么用Python没有颜色输出?

时间:2010-01-20 20:40:59

标签: python

我有一个批处理文件,它调用.Net解决方案来构建项目。在dos控制台窗口中,警告和错误将以不同的颜色,绿色和红色,看起来不错。当从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 :(得分:3)

某些程序会测试它们是否实际连接到控制台/终端,如果它们不是为了更容易解析/处理输出,则禁止属性更改。我知道在* nix系统上你可以使用unbuffer来欺骗程序,但我不知道是否有Windows等价物。

答案 1 :(得分:0)

如果这是UNIX,我建议你不要在变量中输出输出,只是让程序打印出来(即不要将stdout传递给子进程)。也许你可以尝试一次?