我正在尝试从python脚本运行命令,但我想存储命令生成的输出,然后检查它是否为子字符串,但是它似乎没有存储在我的变量中,因为它仍然打印到屏幕。
到目前为止,我有这个......
myfile = 'filename.txt'
result = subprocess.Popen(['myprogram.exe', '-f' + myfile], stdout=subprocess.PIPE).communicate()[0]
if result.find("error executing") != -1:
print "error!"
else:
print "success!"
我对Python很陌生。任何人都可以了解为什么当我运行这个脚本时,myprogram.exe会执行,但它的输出仍然会被发送到屏幕。如果我打印结果变量,它有来自myprogram.exe的额外输出,但我也需要显示错误的行。
答案 0 :(得分:2)
你只是重定向stdout。看起来您的程序会将错误输出到stderr(如预期的那样),并将stderr=subprocess.PIPE
添加到Popen
调用。