[pyar] Ejecutando algo y enterándome qué pasa

Daniel Moisset dmoisset en machinalis.com
Jue Nov 22 12:08:45 ART 2012


2012/11/21 Facundo Batista <facundobatista en gmail.com>

> Situación: tengo un string y debo ejecutarlo en la máquina (esto es
> bajo linux, para Launcherposta [0]).
>
> Ejemplo: "/usr/bin/gvim /home/facundo/fruta.txt"
>
> Quiero ejecutar ese string (del cual no tengo control) y si hay un
> error, indicárselo al usuario.
>
> Probé con
>
> a) subprocess.Popen(cmd, shell=True) -- el problema acá es que si el
> shell no encuentra el proceso, *yo no me entero* (no salta una
> excepción a nivel de Python)
>
> b) subprocess.Popen(cmd) -- acá no encuentra el comando, directamente;
> para que lo encuentre debería pasar cmd.split(), pero el tema es que
> hacer un split() a ciegas me puede convertir un comando que es
> "/bin/algo -t 3 foobar" en ["/bin/algo", "-t", "3", "foobar"] cuando
> realmente debería ser ["/bin/algo", "-t 3", "foobar"] (bah, creo).
>
>

No,  ["/bin/algo", "-t", "3", "foobar"] es lo que se corresponde, si queres
hacer lo equivalente al shell con /bin/algo -t 3 foobar

La division se hace complicada si te usan quoting como el ejemplo de
Roberto. eso lo necesitas soportar en tu caso de uso?

D.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20121122/ab232cbf/attachment.html>


More information about the pyar mailing list