Así que estoy tratando de consulta para los 3 primeros procesos de la CPU "intensivos" en una máquina dada, y me encontré con este comando shell para hacerlo: ps -eo pcpu,pid,user,args | sort -k 1 -r | head -3
tuberías de cáscara a través del módulo de Python subproceso
quiero usar esta información dentro de una secuencia de comandos de Python, así que necesito poder capturar la salida del comando anterior a través del módulo subprocess
. Las siguientes obras, pero sólo devuelve una cadena enorme ya que no estoy limitarla a la parte superior 3:
psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
No estoy muy seguro de cómo este subprocess.check_output
obras .. en un intento exiguo Traté:
subprocess.check_output(['ps', '-eo', 'pcpu,user,args', '|', 'sort', '-k', '1', '-r', '|', 'head', '-3'])
lo que me da un error: ps: illegal argument: |
¿Cómo se utiliza el tubo |
símbolo dentro de Python, o usar alguna otra Cómo hacer la clasificación sin tener que hacer increíbles cantidades de análisis en la enorme cadena devuelta por psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
?
Gracias! Saludos, -kstruct
Se podría escribir un script que contiene el código con las tuberías, a continuación, llamar a que desde el módulo de subproceso – jedwards