Rohrleitungen in der Schale, per Python-subprocess-Modul

Ich versuche also, die Abfrage der top-3-CPU - "intensiv" - Prozesse auf einer gegebenen Maschine, und ich fand diese shell-Befehl, es zu tun: ps -eo pcpu,pid,user,args | sort -k 1 -r | head -3

Möchte ich diese Daten in einem Python-Skript, so brauche ich, um in der Lage zu erfassen Sie die Ausgabe des obigen Befehls über die subprocess Modul. Die folgenden Werke, sondern nur gibt einen riesigen string, da ich keine Beschränkung auf die top 3:

psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])

Ich bin mir nicht ganz sicher, wie das subprocess.check_output funktioniert.. in einem mageren Versuch habe ich versucht:

subprocess.check_output(['ps', '-eo', 'pcpu,user,args', '|', 'sort', '-k', '1', '-r', '|', 'head', '-3'])

Gibt mir eine Fehlermeldung: ps: illegal argument: |

Wie benutze ich das Rohr | symbol in Python oder eine andere Art und Weise zu tun, die Sortierung, die zimmerreserviereung, ohne das Sie unglaubliche Mengen an Analyse auf den riesigen string zurückgegeben psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])?

Dank!
Grüße,
-kstruct

  • Sie schreiben, könnte ein shell-Skript, das den code mit Pfeifen, rufen Sie dann, dass aus dem subprocess-Modul
InformationsquelleAutor adelbertc | 2012-05-01
Schreibe einen Kommentar