So verwenden Sie Pipes mit dem Subprocess-Befehl
Bei der Arbeit mit dem Subprocess-Modul kann es zu Situationen kommen, in denen Sie Pipes verwenden müssen mehrere Befehle verbinden. Diese Frage untersucht die Herausforderung der Verwendung von subprocess.check_output() mit dem folgenden Befehl:
ps -A | grep 'process_name'
Antwort
Um eine Pipe mit Unterprozess zu verwenden, ist die Shell=True Argument eingesetzt werden kann. Allerdings wirft die Verwendung von „shell=True“ Sicherheitsbedenken auf und sollte mit Vorsicht angegangen werden. Ein besserer Ansatz besteht darin, die ps- und grep-Prozesse getrennt zu erstellen und die Ausgabe von einem in den anderen zu leiten:
ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE) output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout) ps.wait()
In dem genannten spezifischen Szenario wäre eine einfachere Lösung, subprocess.check_output(('ps ', '-A')) und verwenden Sie str.find für die Ausgabe.
Das obige ist der detaillierte Inhalt vonWie leitet man Befehle mit dem „subprocess'-Modul von Python richtig weiter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!