Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich externe Befehlsausgaben im Python-Modul „subprocess' effizient weiterleiten?
Externe Befehle mit Pipes mithilfe von Unterprozessen ausführen
Beim Arbeiten mit dem Unterprozessmodul kann es erforderlich sein, Pipes zu verwenden, um die Ausgabe eines externen Befehls als Eingabe zu verbinden zu einem anderen. Um dies zu erreichen, können Sie den Parameter „shell=True“ in der Funktion „subprocess.check_output()“ verwenden.
Aus Sicherheitsgründen ist es jedoch wichtig, bei der Verwendung von „shell=True“ mit Vorsicht vorzugehen. Stattdessen wird empfohlen, für jeden Befehl separate Prozesse zu erstellen und die Ausgabe entsprechend weiterzuleiten.
Betrachten Sie zur weiteren Erläuterung das folgende Beispiel:
ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE) output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout) ps.wait()
In diesem Szenario lautet der Befehl ps ausgeführt und seine Ausgabe wird an den grep-Befehl weitergeleitet. Die resultierende Ausgabe von grep wird dann in der Variablen „output“ gespeichert.
Alternativ, wenn „shell=True“ nicht gewünscht ist, können Sie str.find verwenden, um das gleiche Ergebnis zu erzielen:
output = subprocess.check_output(('ps', '-A')) process_found = 'process_name' in output
Das obige ist der detaillierte Inhalt vonWie kann ich externe Befehlsausgaben im Python-Modul „subprocess' effizient weiterleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!