Итак, я пытаюсь запросить 3 наиболее "интенсивных" процесса ЦП на данной машине, и я нашел эту команду оболочки, чтобы сделать это: ps -eo pcpu,pid,user,args | сортировать -k 1 -r | head -3
Я хочу использовать эти данные внутри скрипта Python, поэтому мне нужно иметь возможность захватывать вывод вышеуказанной команды через модуль subprocess
. Следующее работает, но просто возвращает огромную строку, так как я не ограничиваю ее тремя верхними:
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: недопустимый аргумент: |
Как мне использовать символ вертикальной черты |
внутри Python или использовать какой-либо другой способ сортировки без необходимости выполнять невероятное количество синтаксического анализа огромной строки, возвращаемой psResult = subprocess. check_output(['ps', '-eo', 'pcpu,user,args'])
?
Спасибо! С уважением, -kstruct