所以我想查詢一個給定的機器上的前3名CPU「密集」的過程中,我發現這個shell命令做到這一點:ps -eo pcpu,pid,user,args | sort -k 1 -r | head -3
通過Python子進程模塊管殼
我想用這些數據在一個Python腳本中,所以我需要能夠通過subprocess
模塊捕獲上述命令的輸出。下面的工作,但只返回一個字符串,巨大的,因爲我沒有把它限制爲前3:
psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
我不太清楚如何subprocess.check_output
作品。在微薄的嘗試我想:
subprocess.check_output(['ps', '-eo', 'pcpu,user,args', '|', 'sort', '-k', '1', '-r', '|', 'head', '-3'])
這給了我一個錯誤:ps: illegal argument: |
如何使用管道|
符號內部Python或使用一些其他方式來做排序,而不必對psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
返回的巨大字符串做不可思議的數量解析?
謝謝! 問候, -kstruct
你可以寫含管道代碼中的shell腳本,然後調用從子模塊 – jedwards