“Teilprozess.Popen" - Prüfung für Erfolg und Fehler

Möchte ich überprüfen, ob ein Teilprozess beendet hat, wird die Ausführung erfolgreich war oder nicht. Derzeit ich kommen mit einer Lösung, aber ich bin nicht sicher, wenn Sie korrekt und zuverlässig. Ist es garantiert, dass jeder Prozess gibt seine Fehler nur auf stderr respektvoll zu stdout:

Hinweis: ich bin nicht daran interessiert, nur umleiten/Bedrucken aus der Ausgabe. Dass ich bereits weiß, wie zu tun ist.

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

alternativ:

   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

InformationsquelleAutor Zingam | 2014-08-01

Schreibe einen Kommentar