所以我试图查询给定机器上前 3 个 CPU “密集型”进程,我发现这个 shell 命令可以做到这一点:ps -eo pcpu,pid,user,args | sort -k 1 -r | head -3
我想在 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