[Python-es] subprocess

Anler Hernández Peral anler86 en gmail.com
Mie Mayo 11 00:41:50 CEST 2011


Hola Yixander, intenta con lo siguiente:

#######################################
"""
Emulates

    ps aux | grep sbin | sort -k 9

ref: http://docs.python.org/library/subprocess.html#replacing-shell-pipeline
"""
import subprocess

ps = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE)
grep = subprocess.Popen(['grep', 'sbin'], stdin=ps.stdout,
stdout=subprocess.PIPE)
ps.stdout.close()
sort = subprocess.Popen(['sort', '-k', '9'], stdin=grep.stdout,
stdout=subprocess.PIPE)
grep.stdout.close()

output = sort.communicate()[0]

print output
##########################################



2011/5/7 Yixander de la Paz Milán <ydmilan en estudiantes.uci.cu>

> buenas noches:
>
> estoy desarrollando un proyecto donde trabajo con la libreria subprocess, y
> quisiera ejecutar el siguiente comando y luego trabajar con el resultado del
> mismo
>
> tengo esto:
>
> ruta = subprocess.Popen("hostname", stdout=subprocess.PIPE)
> resultado = ruta.communicate()[0]
>
> se que el resultado de salida lo almacena en result, pero como ejecutar un
> comando que contenga el caracter "|" por ejemplo este --> "ps auxww | grep
> postgres: | sort -k 9", se que incluso puedo hacer esto:
>
> ruta = subprocess.Popen("ls", "-l", stdout=subprocess.PIPE)
> resultado = ruta.communicate()[0]
>
> pero como decía anteriormente quisiera ejecutar este comando "ps auxww |
> grep postgres: | sort -k 9" como lo hago con "hostname" y "ls" "-l" ...
>
> Saludos
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110511/fcc0f117/attachment.html>


Más información sobre la lista de distribución Python-es