трубопровод в оболочке через модуль подпроцесса Python
Итак, я пытаюсь запросить 3 процессора "интенсивно" процессы на данной машине, и я нашел эту команду оболочки, чтобы сделать это: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