我有一个批处理文件,它调用.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()
感谢
答案 0 :(得分:3)
某些程序会测试它们是否实际连接到控制台/终端,如果它们不是为了更容易解析/处理输出,则禁止属性更改。我知道在* nix系统上你可以使用unbuffer
来欺骗程序,但我不知道是否有Windows等价物。
答案 1 :(得分:0)
如果这是UNIX,我建议你不要在变量中输出输出,只是让程序打印出来(即不要将stdout
传递给子进程)。也许你可以尝试一次?