"Subprocess.Popen" - Überprüfung auf Erfolg und Fehler

Ich möchte überprüfen, ob ein Teilprozess die Ausführung erfolgreich abgeschlossen hat oder fehlgeschlagen ist. Derzeit habe ich eine Lösung gefunden, bin mir aber nicht sicher, ob sie korrekt und zuverlässig ist. Ist gewährleistet, dass jeder Prozess seine Fehler nur an stderr respektvoll ausgibtstdout:

Hinweis: Ich möchte nicht nur die Ausgabe umleiten / ausdrucken. Das weiß ich schon.

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

Alternative:

   if "" == pipe.stdout.readline():
       print("Success")
       self.isCommandExectutionSuccessful = True
   else:
       print("Error")
       self.isCommandExectutionSuccessful = False

und:

   if not "" == pipe.stderr.readline():
       print("Success")
       self.isCommandExectutionSuccessful = True
   else:
       print("Error")
       self.isCommandExectutionSuccessful = False