我有以下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]
答案 0 :(得分:4)
尝试捕捉stderr:
subprocess.Popen(["bash", "-c", "make"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(正如用户“Barmar”已经注意到的那样,编译器错误消息被发送到stderr。)