So verwenden Sie Python -Subprozess mit Rohren?

So verwenden Sie Python -Subprozess mit Rohren?
Python ist die häufigste hochrangige Sprache, die sich perfekt für Anfänger eignet. Es ist nützlich für maschinelles Lernen, Webentwicklung und andere Funktionen. Es ist eine der unkompliziertesten und zugänglichen Programmiersprachen, mit der Programmierer klare, präzise und einfache Code schreiben können. Es bietet viele integrierte Funktionen, leicht verständliche Methoden und mehrere Unterprozesse, mit denen der Benutzer Linux-, C-, C ++-oder Java-Befehle direkt von Python ausführen kann. In diesem Artikel werden die Verwendung von Subprozessen in Python erörtert und erklärt, wie diese Unterprozesse mit Rohren kombiniert werden können. Also lasst uns anfangen.

Die offizielle Python -Dokumentation liefert eine detaillierte Erklärung des Subprozesses in Python und der Verwendung des Python -Subprozesse. Die vollständige Dokumentation kann jedoch für Anfänger etwas überwältigend sein. Darüber hinaus kann die Syntax von einer Version zu einer anderen Version von Python variieren, die die Anfänger verwirren kann.

Daher haben wir eine Lösung für Sie, und hier erklären wir den Schritt-für-Schritt-Prozess der Verwendung des Python-Subprozesses mit Rohren. Wir werden den Prozess mit Hilfe von Beispielen erläutern. Lassen Sie uns also weiter gehen, um die Beispiele zu sehen, aber zuerst sehen wir uns sehen. Das Rohr in Python wird verwendet, um Daten aus einem Programm zu senden oder zu empfangen, das als Subprozess in Python ausgeführt wird. Dazu können wir eine Kombination von verwenden Rohr das erstellt im Grunde das Rohr, a Gabel wird verwendet, um den Unterprozess im Programm zu erstellen, DUP2 wird verwendet, um den Unterprozess zu zwingen, das Rohr als Standardeingangs- und Ausgangskanal zu verwenden, und schließlich, Geschäftsführer wird verwendet, um das neue Programm auszuführen oder auszuführen. Darüber hinaus werden Popen und Pclose verwendet, um das Programm zu öffnen oder zu schließen.

Der Vorteil der Verwendung von Popen und Pclose besteht. Es bietet jedoch nicht viel Flexibilität, da es direkt Funktionen auf niedriger Ebene verwendet. Lassen Sie uns die folgenden Beispiele sehen.

Beispiel 1:

Das erste Beispiel erklärt, wie man den Befehl codiert, der ein Rohr und eine Umleitung enthält. Lassen Sie uns das Beispiel sehen:

ZCAT F1.dat.GZ F2.dat.gz | pigz> raus.gz

Hier ist der Python -Code, in dem erklärt wird, wie der UNIX -Befehl mit Subprozess in Python implementiert werden kann.

P1 = Subprozess.Popen (["Zcat", "F1.dat.GZ "," F2.dat.GZ "],
stdout = subprocess.ROHR)
fout = open ('out.GZ ',' WB ')
P2 = Subprozess.run (['pigz'], stdin = p1.stdout, stdout = fout) a

Beachten Sie, dass die Popen () -Methode mit dem ersten Subprozess verwendet wird, während die Run () -Methode mit dem zweiten Aufruf verwendet wird, der die Umleitungen codiert. Der nachfolgende Fehler wird verursacht, wenn die Run () -Methode mit dem Rohr selbst verwendet wird.

Beispiel 2:

In diesem Beispiel wird erklärt, wie ein Python -Programm den Namen eines Benutzers fragt. Dann wiederholt es eine Begrüßungsnachricht und fragt wiederholt nach den Namen, bis der Benutzer das 'Beenden eingibt.Wenn der Benutzer in der Antwort von der Befragung des Namens eingeht, erfüllte die Bedingung die angegebenen Kriterien und die Ausführung des Programms. Siehe den unten angegebenen Code.

Importsystem
Print ("Wie heißt Ihr Name?"))
für den Namen in iter (sys.Stdin.Zeile lesen, "):
Name = Name [:-1]
Wenn Name == "Exit":
brechen
print ("Nun, wie geht es dir 0?".Format (Name))
print ("\ n Wie heißt Ihr Name?"))

Hier ist die wiederholte Ausgabe des obigen Code.''

Beispiel 3:

Dieses Beispiel ist etwas kompliziert, aber leicht zu verstehen und zu verwenden. Es wird erklärt, wie Sie die Eingabe und Ausgabe eines Programms mit Pipe und Subprozess in Python steuern können. Lassen Sie uns zuerst den Code sehen.

Subprozess importieren
Importsystem
Proc = Subprozess.Popen (["Python", Callmyname.py "])
während Proc.returncode ist keine:
Proc.Umfrage()
Proc = Subprozess.Popen (["Python", Callmyname.py "],
stdin = subprocess.Pfeife, Stdout = Subprozess.ROHR)
Proc.Stdin.schreiben ("Alex \ n")
Proc.Stdin.schreiben ("jhon \ n")
Proc.Stdin.schließen()
während Proc.returncode ist keine:
Proc.Umfrage()
print ("Ich bin zurück aus dem untergeordneten Programm dies: \ n 0".Format (Proc.Stdout.lesen()))

Der Subprozess.Popen () nimmt zwei benannte Argumente, einer ist stdin und der zweite ist stdout. Beide Argumente sind optional. Diese Argumente werden verwendet, um das Rohr festzulegen, das der untergeordnete Prozess als stdin und stdout verwendet. Der Subprozess.Rohr wird als Konstante bestanden, so dass einer der Subprozess.Popen () oder subprozess.Pfeife der Benutzer Gibt an, dass er das Ergebnis wünscht. Ein untergeordneter Prozess namens Callmyname.PY wird im Programm erstellt. Zwei Namen werden an den Callmyname übergeben.PY, bevor Sie das EOF -Signal an den Eingang des Kindes senden. Der Mutterprozess wartet, bis der Kinderprozess fertig ist, bevor er die vom Kinderprozess erzeugte Ausgabe liest. Das Folgende ist die Ausgabe des oben gegebenen Code.

Wie Sie sehen können, ist es unkompliziert, das Rohr mit dem Subprozess in Python zu verwenden. Wenn Sie den oben angegebenen Beispielen folgen, können Sie leicht die Verwendung von Rohr mit Subprozessen in Python lernen.

Abschluss:

In diesem Artikel geht es darum, wie man den Python -Subprozess mit Rohr verwendet. Zunächst haben wir kurz vorgestellt, was ein Rohr für einen Subprozess in Python ist, und dann einige Beispiele zur Verfügung stellten, um zu erklären, wie das Rohr mit einem Subprozess in Python verwendet wird.