Comment utiliser les tuyaux avec la commande de sous-processus
Lorsque vous travaillez avec le module de sous-processus, il peut y avoir des scénarios dans lesquels vous devez utiliser des tuyaux pour connecter plusieurs commandes. Cette question explore le défi de l'utilisation de subprocess.check_output() avec la commande suivante :
ps -A | grep 'process_name'
Answer
Pour utiliser un tube avec un sous-processus, le shell=True un argument peut être utilisé. Cependant, l'utilisation de shell=True pose des problèmes de sécurité et doit être abordée avec prudence. Une meilleure approche consiste à créer les processus ps et grep séparément et à rediriger la sortie de l'un vers l'autre :
ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE) output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout) ps.wait()
Dans le scénario spécifique mentionné, une solution plus simple serait d'invoquer subprocess.check_output(('ps ', '-A')) et utilisez str.find sur la sortie.
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!