无法正确解析Python的bash输出

时间:2014-01-13 08:46:39

标签: python bash parsing stdout

我有以下Python代码,我通过在python脚本中嵌入bash命令来调用Makefile。我想检查是否在stdout上报告了警告。我确实在stdout上看到了警告,但我的Python代码似乎没有检测到它。

Python代码:

maker = subprocess.Popen(["bash", "-c", "make"], stdout=subprocess.PIPE)
    for line in maker.stdout:
        if "warning:" in line:
            print "Warning(s) detected in make"                 

stdout上的输出明确报告警告:

main.c: In function ‘main’:
main.c:46:14: warning: unused variable ‘options’ [-Wunused-variable]

1 个答案:

答案 0 :(得分:4)

尝试捕捉stderr:

subprocess.Popen(["bash", "-c", "make"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)

(正如用户“Barmar”已经注意到的那样,编译器错误消息被发送到stderr。)