So verwenden Sie die Python -Subprozess -Check_output -Methode?

So verwenden Sie die Python -Subprozess -Check_output -Methode?
In diesem Artikel werden wir eine kurze Einführung von Python -Subprozessen geben und darüber diskutieren, wie man Subprozess check_output in Python verwendet. Beginnen wir damit, zu wissen, was ein Unterprozess in Python ist. Subprozess ist ein Python -Modul, mit dem neue Codes durch Erstellen neuer Prozesse ausgeführt werden. Dadurch kann der Benutzer eine neue Anwendung innerhalb des aktuell ausführenden Python -Programms erstellen. Wenn der Benutzer ein externes Programm aus einem C- oder C ++ - Programm oder einem externen Programm aus einem Git -Repository ausführen möchte, kann der Python -Subprozess diese Programme verschmelzen. Darüber hinaus kann der Benutzer mithilfe des Python -Subprozesse. Zwei Parameter im Funktionsaufruf werden übergeben; Der erste Parameter bezieht sich auf das Programm, das der Benutzer initialisieren möchte, und das andere Argument bezieht sich auf die Dateiargumente.

In Python gibt es beispielsweise viele Subprozessmodule in Python.run (), subprozess.Popen (), subprozess.Call (), Subprozess.check_call (), subprozess.check_output () usw. Hier werden wir aufklären, was der Subprozess ist.check_output (), was seine Funktion ist und wie es in einem Python -Programm verwendet wird.

Die Syntax von Subprozess.check_output ()

Jedes Python -Programm verfügt über Standardkanäle für den Prozess oder den Unterprozess. Diese Kanäle werden von Call () gestartet und an die Eingabe und Ausgabe des übergeordneten Programms gebunden. Mit anderen Worten, der Befehl der Ausgabe des aufrufenden Programms kann nicht erfasst werden. Daher wird das Subprozess -Modul check_output () in Python verwendet, um die Ausgabe des aufrufenden Programms für die spätere Verarbeitung zu erfassen. Die Syntax von Subprozess.check_output () ist wie folgt:

Subprozess.check_output (args, *, stdin = keine, stderr = keine, Shell = false, Universal_newlines = false)

Das Argument der Subprozesse "Args".check_output bezieht sich auf den Befehl, der ausgeführt werden soll. Mehrere Befehle können als String an das Argument "Args" übergeben werden. Sie müssen jedoch durch ein Semikolon getrennt werden.'Das Stdin -Argument bezieht sich auf den Wert des Standardeingangsstroms, der ein Rohr übergeben werden muss. Das STDOut -Argument bezieht sich auf den Wert der aus dem Standardausgangsstrom erzeugten Ausgabe. Das Stderr -Argument bezieht sich auf den aus dem Standardfehlerstrom generierten Fehlerwert.

Das Shell -Argument bezieht sich auf den booleschen Parameter, der nur dann über eine neue Shell -Umgebung ausgeführt wird, wenn er wahr ist. Das letzte Argument, Universal_Newlines. Wenn das Argument der Universal_Newlines wahr ist, wird die Datei, die STDOut und Stderr enthält, im Universal Newline -Modus geöffnet. Die Ausgabe oder die Rückgabe des Subprozesses.check_output () ist der Code des Befehls.

Hier ist ein Beispiel, damit Sie verstehen, wie das Modul check_output () die Ausgabe des Anrufprogramms erfasst.

Beispiel 1:

In diesem einfachen Beispiel wird der Ausgabescode des Befehls erstellt.

Subprozess importieren
Calling_output = Subprozess.check_output (['ls', '-l'])
print (Calling_output)

Hier ist die Ausgabe des angegebenen Beispiels:

Beispiel 2:

In diesem Beispiel wird die Ausgabe des Anrufprogramms erzeugt.

Subprozess importieren
Druck (Subprozess.check_output (["echo", "abc"])))

Hier ist die Ausgabe des obigen Code:

Beispiel 3:

In diesem Beispiel wird gezeigt, wie externe Programme jeder Programmiersprache wie C, C ++, Java usw., werden in ein Python -Programm mit Subprozess in Python aufgenommen und wie check_output () die Ausgabe dieser externen Programme ausführt.

Dies ist ein C -Programm:

int main ()

printf ("print hello_world aus c programmiersprache");
Rückkehr 0;

Unten ist das C ++ - Programm

#enthalten
Verwenden von Namespace STD;
int main ()

int a, b;
Cin >> a;
cin >> b;
Cout << "Print Hello_World from C++ programing language and the Values are:" << a << " " << b;
Rückkehr 0;

Dies ist das Java -Programm

Klasse HelloWorld

öffentlich
statische Void -Main (String args [])

System.aus.print ("print hello_world von java programmiersprache" drucken ");

Hier ist das Python -Programm, das die oben genannten Programme mit Subprozess in Python ausführt

Subprozess importieren
OS importieren
Def exec ():
A = Subprozess.check_call ("gcc Hello_world.c -o out1;./out1 ", Shell = true)
drucken (", Ausgabe", a)
Def execpp ():
Daten, temp = os.Rohr()
Betriebssystem.Schreiben Sie (temp, bytes ("5 10 \ n", "utf-8");
Betriebssystem.schließen (temp)
S = Subprozess.check_output ("g ++ helloWorld.CPP -O out2;./out2 ", stdin = data, Shell = true)
Druck (s.decode ("utf-8"))
Def exejava ():
S = Subprozess.check_output ("Javac HelloWorld.Java; Java HelloWorld ", Shell = wahr)
Druck (s.decode ("utf-8"))
Wenn __name __ == "__ main__":
exec ()
execpp ()
exejava ()

Hier ist die Ausgabe des obigen Programms:

Notiz: Obwohl das Subprozessmodul in Python OS unabhängig ist, müssen diese Befehle vorzugsweise in der Linux -Umgebung ausgeführt werden. Darüber hinaus kann die Shell = True zu einer Sicherheitsrisiko werden, wenn eine nicht vertrauenswürdige Eingabe kombiniert wird, wie in der Python -Dokumentation definiert.

Abschluss:

In diesem Artikel geht es um den Unterprozess.check_output () Modul des Subprozesses in Python. Hier haben wir eine kurze Diskussion über Subprozesse in Python und erläutern dann die Verwendung des Subprozesses.check_output (). Lassen Sie uns eine kurze Zusammenfassung des Artikels haben. Der Subprozess in Python erstellt ein neues Programm, um einen neuen Code darin auszuführen. Dadurch kann der Benutzer eine neue Anwendung innerhalb des aktuell ausführenden Python -Programms erstellen. In Python gibt es viele Unterprogrammemodule, und einige von ihnen sind Subprozess.Call (), Subprozess.Popen (), subprozess.check_call (), subprozess.check_output ().

Der Subprozess.check_output () wird verwendet, um die Ausgabe des aufrufenden Programms in Python zu erhalten. Es hat 5 Argumente; Args, Stdin, Stderr, Shell, Universal_Newlines. Das Argument -Argument enthält die Befehle, die als Zeichenfolge übergeben werden sollen. Die Stdin, Stdout und STDDERR liefern den Eingangs-, Ausgangs- und Fehlerwert aus dem Standardstrom. Die Shell und Universal_Newlines sind die booleschen Parameter, die nur die Befehle ausführen, wenn der Wert des Arguments wahr ist. Der Rückgabecode des Befehls wird als Ausgabe des Subprozesses angegeben.check_ouput () Funktion. Eine Byte -Zeichenfolge wird als Ausgabe zurückgegeben, wenn der Code Null ist. Sonst wird genannt.