<br><div class="gmail_extra"><br><br><div class="gmail_quote">2012/11/21 Facundo Batista <span dir="ltr"><<a href="mailto:facundobatista@gmail.com" target="_blank">facundobatista@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Situación: tengo un string y debo ejecutarlo en la máquina (esto es<br>
bajo linux, para Launcherposta [0]).<br>
<br>
Ejemplo: "/usr/bin/gvim /home/facundo/fruta.txt"<br>
<br>
Quiero ejecutar ese string (del cual no tengo control) y si hay un<br>
error, indicárselo al usuario.<br>
<br>
Probé con<br>
<br>
a) subprocess.Popen(cmd, shell=True) -- el problema acá es que si el<br>
shell no encuentra el proceso, *yo no me entero* (no salta una<br>
excepción a nivel de Python)<br>
<br>
b) subprocess.Popen(cmd) -- acá no encuentra el comando, directamente;<br>
para que lo encuentre debería pasar cmd.split(), pero el tema es que<br>
hacer un split() a ciegas me puede convertir un comando que es<br>
"/bin/algo -t 3 foobar" en ["/bin/algo", "-t", "3", "foobar"] cuando<br>
realmente debería ser ["/bin/algo", "-t 3", "foobar"] (bah, creo).<br>
<br></blockquote><div><br><br>No,   ["/bin/algo", "-t", "3", "foobar"] es lo que se corresponde, si queres hacer lo equivalente al shell con /bin/algo -t 3 foobar<br><br>La division se hace complicada si te usan quoting como el ejemplo de Roberto. eso lo necesitas soportar en tu caso de uso?<br>
<br>D.<br><br></div></div></div>