Appel d’une commande unix à plusieurs sous-ensembles dans le sous-processus de python

Comment puis-je appeler une commande unix telle que df -Ph | awk 'NR>=2 {print $6","$5","$4}' df -Ph | awk 'NR>=2 {print $6","$5","$4}' utilisant un sous-processus. Serait-il judicieux d’utiliser shlex.split ici?

Merci pour toute aide ici.

Vous utilisez un tuyau, il doit donc fonctionner dans le shell. Il suffit donc d’utiliser la forme de chaîne et assurez-vous de spécifier shell=True . En ce qui concerne la citation, il est plus facile d’utiliser une citation sortingple ici:

 cmd = """df -Ph | awk 'NR>=2 {print $6","$5","$4}'""" 

Il suffit que le subprocesssubprocess passe à un shell en définissant shell=True :

 subprocess.call('''df -Ph | awk 'NR>=2 {print $6","$5","$4}'''', shell=True) 

Bonjour, vous pouvez aussi faire comme ça. N’oubliez pas d’importer le sous-processus

 import subprocess def linuxOperation(): p = subprocess.Popen(["df","-Ph"], stdout=subprocess.PIPE) p2 = subprocess.Popen(["awk",'NR>=2 {print $6","$5","$4}'], stdin=p.stdout, stdout=subprocess.PIPE, universal_newlines=True) p.stdout.close() out,err = p2.communicate() print(out) linuxOperation()