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

Roberto Alsina ralsina en netmanagers.com.ar
Mie Nov 21 12:57:02 ART 2012


On 21/11/12 12:50, Roberto Bravo wrote:
>
>     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).
>
> Mirá esto.
> Funciona:
> subprocess.Popen(['/usr/bin/ls','-l','--sort', 'time'])
> No funciona:
> subprocess.Popen(['/usr/bin/ls','-l','--sort time'])
> Al parecer estaría bien con el split.

Es un poquito mas dificil que eso ;-)

 >>> subprocess.Popen('ls -ld "/home/ralsina/Ubuntu One"'.split())
<subprocess.Popen object at 0x2ca6510>
 >>> ls: cannot access "/home/ralsina/Ubuntu: No such file or directory
ls: cannot access One": No such file or directory

Se puede usar shlex.split:

 >>> shlex.split('ls -ld "/home/ralsina/Ubuntu One"')
['ls', '-ld', '/home/ralsina/Ubuntu One']

Que debería funcionar excepto para casos raros.

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


More information about the pyar mailing list