【问题标题】:How to print original color output using subprocess.check_output如何使用 subprocess.check_output 打印原始颜色输出
【发布时间】:2015-09-09 18:40:50
【问题描述】:

我有一堆运行 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

谁能帮帮我,如何将输出打印为带有颜色的原始输出?

【问题讨论】:

    标签: python


    【解决方案1】:

    因为我今天在 Windows 上遇到了类似的问题。我做了一些研究,似乎问题在于,gtest 通过使用屏幕缓冲区句柄在控制台内创建颜色。 gtest 的普通 outstream 不包含任何颜色信息。这意味着一旦这些被重定向,颜色就会丢失。

    以下代码对我有用:

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

    只要 Python 命令行调用未通过任何重定向调用(如 tee>>)执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-09
      • 2014-10-29
      • 2017-11-22
      • 2019-11-23
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多