【发布时间】:2014-09-24 14:13:42
【问题描述】:
我想检查一个子进程是成功完成还是失败了。目前我已经提出了一个解决方案,但我不确定它是否正确和可靠。是否保证每个进程仅将其错误输出到 stderr 尊重stdout:
注意:我对重定向/打印输出不感兴趣。我已经知道该怎么做了。
pipe = subprocess.Popen(command,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True)
if "" == pipe.stdout.readline():
print("Success")
self.isCommandExectutionSuccessful = True
if not "" == pipe.stderr.readline():
print("Error")
self.isCommandExectutionSuccessful = True
或者:
if "" == pipe.stdout.readline():
print("Success")
self.isCommandExectutionSuccessful = True
else:
print("Error")
self.isCommandExectutionSuccessful = False
和:
if not "" == pipe.stderr.readline():
print("Success")
self.isCommandExectutionSuccessful = True
else:
print("Error")
self.isCommandExectutionSuccessful = False
【问题讨论】:
标签: python python-3.x subprocess stdout stderr