如何扫描任何程序/进程的命令输出以确保它';s使用python的控制台中存在成功/失败字符串
在python中,如何扫描任何程序/进程的命令输出,以确保其成功/失败字符串存在于控制台中。通常,成功应根据进程的返回代码而不是它生成的输出来确定。但是,如果您坚持查看输出,则可以看到中各种函数的如何扫描任何程序/进程的命令输出以确保它';s使用python的控制台中存在成功/失败字符串,python,Python,在python中,如何扫描任何程序/进程的命令输出,以确保其成功/失败字符串存在于控制台中。通常,成功应根据进程的返回代码而不是它生成的输出来确定。但是,如果您坚持查看输出,则可以看到中各种函数的stderr参数。通常,成功应该根据进程的返回代码而不是它生成的输出来确定。但是,如果您坚持查看输出,则可以查看中各种函数的stderr参数。更可靠的方法是检查流程返回代码(如前所述),但您可以这样做: import subprocess proc = subprocess.Popen("/usr/bi
stderr
参数。通常,成功应该根据进程的返回代码而不是它生成的输出来确定。但是,如果您坚持查看输出,则可以查看中各种函数的stderr
参数。更可靠的方法是检查流程返回代码(如前所述),但您可以这样做:
import subprocess
proc = subprocess.Popen("/usr/bin/somejavaprogram -flag1 arg1".split())
stdout, stderr = proc.communicate()
if (proc.returncode = 0 and
"data successfully processed" in stdout):
print "Handle success here!"
else:
print "Job failed with return code %s"%(proc.returncode)
print stderr
当然,上面假设一个行为良好的进程将错误写入stderr,并且在成功运行时返回代码为0。YMMV.更可靠的方法是检查流程返回代码(如前所述),但您可以这样做:
import subprocess
proc = subprocess.Popen("/usr/bin/somejavaprogram -flag1 arg1".split())
stdout, stderr = proc.communicate()
if (proc.returncode = 0 and
"data successfully processed" in stdout):
print "Handle success here!"
else:
print "Job failed with return code %s"%(proc.returncode)
print stderr
当然,上面假设一个行为良好的进程将错误写入stderr,并且在成功运行时返回代码为0。YMMV.假设,如果我正在执行某个java程序,并且在执行结束时,我需要知道成功消息,例如输出控制台中存在“数据成功处理”。您可能需要查看
stdout
。但这取决于程序的工作方式。比方说,如果我正在执行某个java程序,并且在执行结束时,我需要知道成功消息,例如输出控制台中存在“已成功处理的数据”。您可能需要查看stdout。但这取决于程序的工作方式。谢谢你,迈克。这很有帮助。我正在尝试用python编写通用函数,它将采用3个参数(命令需要执行的目录(/a/b/c),应用程序命令(java或python)和一组参数,成功消息(如正确处理数据)命令示例:/a/b/c java-jar blablablabla.jar——参数1——参数2“数据处理成功”谢谢你,迈克。这很有帮助。我正在尝试用python编写通用函数,它将采用3个参数(命令需要执行的目录(/a/b/c),应用程序命令(java或python)和一组参数,成功消息(如正确处理的数据)命令示例:/a/b/c java-jar blablabla.jar——参数1——参数2“数据处理成功”