prüfen des status der Prozess mit Unterprozess.Popen in Python
Wenn ich das aufrufen eines Prozesses mit subprocess.Popen
in Python wie folgt:
myproc = subprocess.Popen(...).communicate()
was ist der richtige Weg, um Ihren status zu sehen? Nicht seine Ausgabe auf stdout oder stderr, aber seine exit-status, sobald es fertig ist (z.B. 0 für Erfolg oder eine andere für die Fehler)?
InformationsquelleAutor user248237dfsf | 2012-12-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
returncode
ist ja die Antwort, aber die Lösung muss nicht kompliziert sein.Weitere Infos in der Python
subprocess
docs.wait
wirklich notwendig oder tutcommunicate()
nehmen der Dinge, wenn der Prozess noch läuft?Die docs sagen "return-code von
poll()
undwait()
(und indirekt durchcommunicate()
)." Socommunicate()
kümmern sollte warten, bis der Vorgang zu Ende.InformationsquelleAutor
Einen Prozess, der nicht über ein return-code, bis es fertig ausgeführt. Daher, wenn es noch nicht fertig, müssen Sie entscheiden, was Sie tun möchten: warten Sie, oder wieder einige Kennzeichen von "ich habe noch nicht fertig".
Wenn Sie warten wollen, verwenden Sie
kommunizieren
und überprüfen Sie dann diereturncode
Attribut.Wenn Sie überprüfen möchten, ob der return code gesetzt ist, und zurück
None
wenn nicht, verwenden SiePopen.poll()
.(wenn der Prozess noch nicht beendet,
poll()
zurückNone
)InformationsquelleAutor Katriel
Können Sie aufrufen müssen, eine
wait
auf Ihrem Teilprozess und dann (einmal getan ist) überprüfen Sie den status in derreturncode
Bereich der Teilprozess Instanz.Habe ich eine kleine routine, die Anrufe Zeug, vielleicht ist es ' ll helfen...
Können Sie es versuchen mit:
InformationsquelleAutor BorrajaX