“Subprocess.Popen” - verificando se há sucesso e erros
Quero verificar se um subprocesso terminou a execução com êxito ou falhou. Atualmente, eu tenho uma solução, mas não tenho certeza se ela é correta e confiável. É garantido que todo processo produz seus erros apenas para roubar respeitosamentestdout
:
Nota: Não estou interessado em apenas redirecionar / imprimir a saída. Que eu já sei fazer.
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
alternativamente:
if "" == pipe.stdout.readline():
print("Success")
self.isCommandExectutionSuccessful = True
else:
print("Error")
self.isCommandExectutionSuccessful = False
e:
if not "" == pipe.stderr.readline():
print("Success")
self.isCommandExectutionSuccessful = True
else:
print("Error")
self.isCommandExectutionSuccessful = False