Sigue: Paso de comandos a un programa desde Python

Tomás Javier Robles Prado tjavier en usuarios.retecal.es
Lun Sep 9 23:16:02 CEST 2002


> popen4() te podría servir.
> en pseudo codigo seria:
> 
> in, out = popen4("overnet")
> while 1:
>    cmd = raw_input("> ")
>    if cmd == "fin":
>        break
>    in.write(cmd)
>    print out.read()
> in.close()
> out.close()

>-Hernan

Gracias Hernán, pero aún tengo problemas.

OVERNET = "./overnet0.29.1"

import popen2
import time

salida, entrada = popen2.popen2 (OVERNET)

while (1):

    entrada.write("?")
      
    lin = salida.read(128)

    print lin
       
    time.sleep (10)

El caso es que el programa se para en la instrucción lin = salida.read(32). He 
probado con otros tamaños de buffer pero nada. También he probado con otros 
métodos de file (readline, redlines...) con el mismo resultado. He utilizado 
popen2 y popen4 con los mismos resultados, no hay mensaje de error pero se 
para.

Otra cosa, como podría ir guardando un log de las salidas del programa? La 
verdad que no sé cómo acceder al fichero salida.

Gracias de nuevo

-- 
Un saludo,
T. Javier Robles Prado tjavier en usuarios.retecal.es
http://users.servicios.retecal.es/tjavier





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