如何使用subprocess.check_output打印原始颜色输出

时间:2015-09-09 18:40:51

标签: python

我有一堆运行GTEST的可执行文件。

GTEST提供通过和失败测试的颜色输出。

现在,当我尝试使用python subprocess.check_output脚本运行一堆可执行文件时,它打印时没有颜色。

这是代码:

for root, dirs, files in os.walk(path):
    for file in files:
       try:
           print subprocess.check_output([os.path.join(root, file)], shell= True, )
       except subprocess.CalledProcessError, e:
            error +=1
print error

任何人都可以帮助我,如何将输出打印为带有颜色的原始输出?

1 个答案:

答案 0 :(得分:0)

因为我今天在Windows上运行类似的问题。我做了一点研究,似乎问题是,gtest通过使用screenbuffer句柄在控制台中创建颜色。 gtest的普通外流不包含任何颜色信息。这意味着一旦重定向就会丢失颜色。

以下代码对我有用:

subprocess.check_call(["cmd", "/c", gtest_case_executable, "--gtest_color=yes"]) 

只要未使用tee>>等任何重定向调用执行Python命令行调用。