Ejecutar programa externo
Gema Núñez Blázquez
gema_alf en yahoo.es
Jue Sep 25 12:54:08 CEST 2003
Hola lista, vereis tengo una duda. Quiero ejecutar un programa externo a traves de python y para eso uso popen3 que me da 3 salidas: salida,entrada y error.
El problema es que no puede acceder a estos buffers hasta que no retorna de la ejecucion del programa externo. Lo que yo quiero es poder ir obteniendo la salida a la vez que el programa las va sacando para poder seguir el progreso.
Os mando el trozo de codigo donde iria integrado por si os sirve de referencia.
Muchas gracias por vuestra ayuda
def comandoEjecutarConEspera(app,lineaComando):
retorno=1
ruta=os.getcwd()+'>'
#lo malo de popen es que hasta que no retorna no me da el resultado
s1,s2,s3=os.popen3(lineaComando)#Todo lo que saca el programa a ejecutar lo obtengo por la salida s2
#s1=>entrada s2=>salida s3=>error
app.fichLog.escribirEnLog(ruta+lineaComando)
app.frmLog.escribirEnTxt(ruta,lineaComando)
try:
salida=''
datos=s2.readlines()
if len(datos)>0:
for x in datos:
salida=salida+' '+upper(x)
app.fichLog.escribirEnLog(' SALIDA EJECUTAR:'+salida)
app.frmLog.escribirEnTxt('','',salida)
s2.close()
except Exception: #no hay salida
pass
try:
errores=''
print 'len datos => '+len(datos)
datos=s3.readlines()
if len(datos)>0:
for x in datos:
errores=errores+' '+upper(x)
app.fichLog.escribirEnLog(' ERRORES EJECUTAR:'+errores)
app.frmLog.escribirEnTxt('','',errores)
retorno=-1
s3.close()
except Exception: #no hay errores
#no hay errores
pass
return retorno
---------------------------------
Yahoo! Messenger
Nueva versión: Super Webcam, voz, caritas animadas, y más #161;Gratis!
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20030925/8091c5c9/attachment.html>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es