Unterprozess mit Pipes verwenden
Die Verwendung von subprocess.check_output() kann ein wertvolles Werkzeug zum Zusammenführen von Befehlen sein und eine komplexe Verarbeitung ermöglichen. Aus Sicherheitsgründen wird jedoch dringend davon abgeraten, das Argument „shell=True“ zur Erleichterung der Weiterleitung zu verwenden.
Für einen sichereren und stabileren Ansatz sollten Sie erwägen, für jeden Befehl separate Prozesse zu erstellen und die Ausgabe zwischen ihnen weiterzuleiten. Hier ist ein Beispiel:
import subprocess # Create a subprocess for the ps command ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE) # Create a subprocess for the grep command output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout) # Wait for the ps process to finish ps.wait() # Process the grep output (if necessary)
Alternativ können Sie Piping ganz vermeiden, indem Sie str.find verwenden, um in der Ausgabe von subprocess.check_output(('ps', '-A')) nach „process_name“ zu suchen. :
import subprocess # Run the ps command and capture the output output = subprocess.check_output(('ps', '-A')) # Search for "process_name" in the output if "process_name" in output: # Take appropriate action
Durch die Einhaltung dieser Richtlinien können Sie Pipes mit dem Unterprozessmodul effektiv nutzen und gleichzeitig Sicherheit und Stabilität gewährleisten.
Das obige ist der detaillierte Inhalt vonWie kann ich Pipes sicher mit dem „Subprocess'-Modul von Python verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!