Więc próbuję kwerendy na górze 3 CPU „Intensive” procesów na danej maszynie, i znalazłem to polecenie powłoki, aby to zrobić: ps -eo pcpu,pid,user,args | sort -k 1 -r | head -3
rurociągów w powłoce poprzez moduł Pythona podproces
chcę używać te dane w skrypcie Python, więc muszę mieć możliwość przechwycenia danych wyjściowych powyższego polecenia za pomocą modułu subprocess
. Poniższy działa, ale po prostu zwraca ogromny ciąg ponieważ ja nie ograniczając go do góry 3:
psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
nie jestem pewien, jak to działa .. subprocess.check_output
w skromnej próbie próbowałem:
subprocess.check_output(['ps', '-eo', 'pcpu,user,args', '|', 'sort', '-k', '1', '-r', '|', 'head', '-3'])
Który daje mi błąd: ps: illegal argument: |
Jak mogę użyć rury |
symbol wewnątrz Python lub użyj innego sposób sortowania bez konieczności wykonywania niewiarygodnych ilości analizowania na wielkim ciągu zwracanym przez psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
?
Dzięki! Pozdrawiam, -kstruct
Można napisać skrypt zawierający kod z rur, a następnie zadzwonić, że z modułu subprocess – jedwards