трубопровод в оболочке через модуль подпроцесса 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

Ответы на вопрос(4)

Ваш ответ на вопрос