getstatusoutput

Arnau Sanchez arnau en ehas.org
Mar Oct 3 01:45:46 CEST 2006


Fredy Cabre escribió:

> Gracias por la respuesta, me he estado mirando la funcion que dices
> (popen) pero dado que 
> acabo de empezar con el python, no se si acabo de entenderla bien.

Popen? no, por facilidad yo te decía la función "call". Por ejemplo:

retcode = subprocess.call(["gnome-terminal", "-x", "sleep", "1"])

Si quisieras capturar la salida estándar, entonces sí puedes usar Popen. Algo así:

p = subprocess.Popen(["gnome-terminal", "-x", "sleep", "1"], stdout=subprocess.PIPE)
salida = p.stdout.read()
retcode = p.wait()

 > En los argumentos del primer parámetro está claro que debe ser una array
 > de strings
 > donde el primer miembro debe ser el programa al que se llama (con la
 > ruta completa supongo)

Si pones la ruta completa, mejor, pero normalmente Popen y call buscan en el path.

 > Sabéis si en mi caso de querer llamar al programa de hacer fotos se le
 > podría pasar un argumento
 > para que me retornase el archivo de la foto para renombrarlo y cambiarlo
 > de sitio?

Eso depende del programa que uses, no sé qué decirte (aunque parece algo 
rebuscado lo que quieres hacer). En cualquier caso los programas Windows no 
suelen ser muy generosos ni en cuanto a opciones por línea de comandos ni en lo 
que retornan por la salida estándar. Se me ocurren algunos S.O. mejores para eso ;-)

saludos

pd: sólo un detalle, siendo un correo a una lista, mejor contesta los correos 
debajo, no hagas Top-Posting, aqui se explica por qué:

http://es.wikipedia.org/wiki/Top-posting




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