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