Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/02/2010, 23:10
LeonardoEF
 
Fecha de Ingreso: enero-2008
Ubicación: Chaco
Mensajes: 116
Antigüedad: 16 años, 2 meses
Puntos: 0
output de subprocess.Popen()

Hola,

Mi problemas es el siguiente, quiero obtener la salida de un comando y ponerla en un objeto file con la funcion Popen() del modulo subprocess. Bueno, en teoria se haria de esta manera...

Código:
>>> import subprocess, tempfile
>>> tmpout = tempfile.NamedTemporaryFile(mode='w+');
>>> ppn = subprocess.Popen("dir", stdout=tmpout, stderr=subprocess.STDOUT, shell=True);
>>> tmpout.read()
'' # Por que no sale nada???
>>>
y si en vez de usar un objeto file como parametro stdout utilizo el subprocess.PIPE la salida sale perfectamente...

Código:
>>> import subprocess
>>> ppn = subprocess.Popen("dir", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True);
>>> ppn.stdout.read()
' El volumen de la unidad C no tiene etiqueta.\r\n El n\xa3mero de serie del volumen es blablabla...'
>>>
si saben por que me ayudan..

Gracias
Salu2
__________________
La web es ciencia xD www.resiscity.com.ar, http://www.leoferreyra.com.ar