“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

questionAnswers(5)

yourAnswerToTheQuestion