Maison >développement back-end >Tutoriel Python >Comment puis-je utiliser en toute sécurité Pipes avec le module « sous-processus » de Python ?
Utiliser un sous-processus avec Pipes
L'utilisation de subprocess.check_output() peut être un outil précieux pour regrouper des commandes ensemble, permettant un traitement complexe. Cependant, l'utilisation de l'argument shell=True pour faciliter le transfert est fortement déconseillée en raison de problèmes de sécurité.
Pour une approche plus sécurisée et plus stable, envisagez de créer des processus distincts pour chaque commande et de rediriger la sortie entre eux. Voici un exemple :
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)
Vous pouvez également éviter complètement le piping en utilisant str.find pour rechercher "process_name" dans la sortie de subprocess.check_output(('ps', '-A')) :
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
En adhérant à ces directives, vous pouvez utiliser efficacement les tuyaux avec le module de sous-processus tout en maintenant la sécurité et stabilité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!