So erhalten Sie Rückgabecode aus dem Prozess in der Ausführung von Python -Subprozess?

So erhalten Sie Rückgabecode aus dem Prozess in der Ausführung von Python -Subprozess?

Als Python -Entwickler möchten Sie möglicherweise aus mehreren Gründen den Rückgabescode eines Prozesses erhalten. Zum Beispiel ist es beim Umgang mit Fehlern wichtig zu wissen, ob ein Unterprozess erfolgreich ausgeführt oder Fehler ausgelöst wurde. Darüber hinaus kann der zurückgegebene Code auch zur Verfolgung des Programms oder der Subprozessausführung verwendet werden.

Dieser Blog wird abdecken:

  • Methode 1: Abrufen des Rückgabecode aus dem Prozess in Python mit dem Attribut „returnCode“
  • Methode 2: Returncode aus dem Prozess in Python mit der Methode „communicate ()“ abrufen
  • Methode 3: Returncode aus dem Prozess in Python mit "check_output ()" -Methode abrufen

Methode 1: Abrufen des Rückgabecode aus dem Prozess in Python mit dem Attribut „returnCode“

In Python gehört das Attribut "returnCode" zum "Subprozess" -Modul. Dieses Attribut enthält einen Ganzzahlwert, der sich auf den Exit -Status eines Subprozesses bei der Ausführung bezieht. Insbesondere bedeutet der Wert „0“ die erfolgreiche Ausführung des Subprozesses, während ein Wert ungleich Null einen abnormalen Zustand oder einen Fehler angibt.

Syntax

Verfahren.Rückgabe Code

Hier, "Verfahren”Repräsentiert die relevante Funktion des Prozessobjekts der“Subprozess”Modul und die“Rückgabe CodeIst sein entsprechender Rückgabecodewert.

Beispiel

Um das zu nutzenRückgabe Code”Attribut zum Abrufen des Rücksendecode in der Ausführung von Python -Subprozess finden Sie im angegebenen Code:

Aus dem Subprozess -Importlauf
process = run (['echo', 'LinuxHint -Benutzer!']))
print ('Rückgabecode:', Prozess.Rückgabe Code)

Nach dem angegebenen Code:

  • Importieren Sie zunächst die “laufen()"Funktion der"Subprozess”Modul.
  • Der "laufen()Die Funktion läuft die “EchoBefehl ”und wartet darauf, dass es abgeschlossen ist, und gibt letztendlich das Prozessobjekt zurück.
  • Zuletzt die “drucken()Die Funktion zeigt die “anRückgabe CodeAttributwert des abgerufenen Objekts:

Hier, "0Wurde zurückgegeben, was darauf hinweist, dass der angegebene Subprozess erfolgreich ausgeführt wurde.

Methode 2: Returncode aus dem Prozess in Python mit der Methode „communicate ()“ abrufen

Der "kommunizieren()Die Methode in Python ermöglicht die Interaktion mit einem Prozess, indem sie die Eingabe an sie weitergeben. Diese Methode gibt ein Tupel aus, das umfasst “std_out”(Standardausgabe) am 0. Index und“stderr_data”(Fehlerstream oder Nachrichten) im 1. Index. Die Werte dieser zugehörigen Variablen werden als “zurückgegeben“KeinerWenn die Standardausgabe oder die Fehlermeldungen nicht erfasst wurden.

Syntax

Verfahren.kommunizieren (input = keine, timeout = keine) [n]

In der gegebenen Syntax “,“Eingang"Ist eine Byte -Zeichenfolge, die an die Standardeingabe des Prozesses übergeben wurde"Auszeit”Ist die Anzahl der Sekunden, um auf den Prozess abzuwarten, und“N"Bezieht sich auf den Index, wo"0”Gibt die Standardausgabe aus und“1”Zeigt die Fehlerströme an.

Beispiel

Führen Sie nun den folgenden Python -Code aus, um den Rückgabecode mit der Methode communicate () zu erhalten:

Subprozess importieren
process = subprocess.Popen (["Echo", "LinuxHint -Benutzer!"], stdout = subprocess.ROHR)
drucken (Prozess.communicate () [0])

Hier:

  • Erstens importieren Sie die “Subprozess”Modul.
  • Es ist "Popen ()Die Methode generiert ein Popen -Objekt, das den neu erstellten Subprozess darstellt und es zurückgibt.
  • Das erste Argument des Popen () bezieht sich auf den Befehl, der ausgeführt werden muss, und auf den Wert der “Stdout”Wird als die“ eingestelltSubprozess.ROHR”Zur Erfassung der Subprozessausgabe.
  • Endlich, das "Verfahren.communicate () [0]”Gibt die Standardausgabe des Subprozesses zurück:

In unserem Fall das “B'LinuxHint -Benutzer!\N'”Wurde als zurückgegebener Code angezeigt.

Methode 3: Returncode aus dem Prozess in Python mit "check_output ()" -Methode abrufen

Der "check_output ()Die Python -Methode führt einen Befehl als Subprozess aus und spart deren Ausgabe. Diese Methode präsentiert die Ausgabe als Objekt eines Byte.

Syntax

Subprozess.check_output (args, *, stdin = none, stderr = keine, Shell = false, Universal_newlines = false, timeout = none, coding = none, fehler = keine)

Hier, "Args”Bedeutet die Befehle, die ausgeführt werden müssen, während alle anderen Parameter optional sind.

Beispiel

Wir haben die „bestanden“EchoBefehl ”und die jeweilige Zeichenfolge zum check_output () als Argument. Folglich gibt diese Methode die erfasste Ausgabe zurück:

process = subprocess.check_output (["echo", "Hallo aus LinuxHint!"]))
Druck (Prozess)

Ausgang

Bonus -Tipp: Dekodieren Sie die Standardausgabe

Python bietet auch die Einrichtung an, um die zurückgegebene Standardausgabe mit der “zu dekodierendekodieren()" Methode. In diesem Code dekodieren wir die Byte -Zeichenfolge mit der “UTF-8”Codierungsschema:

drucken (Prozess.decode ("utf-8"))

Ausgang

Hier ging es darum, den Rückgaberodus in Python zu erhalten.

Abschluss

Verwenden Sie die “, um den Rückgabecode aus einem Prozess in der Ausführung von Python -Subprozess zu erhaltenreturnCode ”” Attribut, „communicate ()“ oder die "check_output ())" Methode. Der "Rückgabe Code”Attribut zurückgegeben“0"Im Falle einer erfolgreichen Ausführung und der"communicate () [0]”Ausgibt die im Nullindex gespeicherte Standardausgabe. Darüber hinaus die “check_output ()Die Methode funktioniert auch gleich. Dieser Blog umfasste mehrere Methoden, um in Python einen Rückgaberodus zu erhalten.