Python - 打印另一个脚本的输出

时间:2016-09-14 11:58:06

标签: python colors subprocess output

我有一个脚本运行另一个带有子进程的script.py。 当它运行时,我正在解析所有输出的文本,指示我下一步该做什么。

def run_command(command):
    global p
    p = subprocess.Popen(command,
                            stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT,
                            shell=True)
    return iter(p.stdout.readline, b'')

for line in run_command(command):
    sys.stdout.write(line)
    sys.stdout.flush()
    if "Nothing to show" in line:
        print "We can stop now"
        os.killpg(os.getpgid(p.pid), signal.SIGTERM)

一切正常。但是script.py的输出是彩色的,我需要sys.stdout.write(line)这些原始颜色。我可以使用subprocess.check_call代替subprocess.Popen。但是在这种情况下如何解析实时输出?

我需要解析script.py的输出,检查文本,然后用原始颜色打印。我上面的代码完成了前两个动作,但最后一个我无法找到。有什么合理的方法吗?

0 个答案:

没有答案