Avanti-cl: Python-Skript geht nicht mehr

Thomas Berger ThB at gymel.com
Mo Nov 17 17:38:26 CET 2003


Liebe Frau Koczian,

> import os
> (xin, xout, xerr) =
> os.popen('c:\\allegro\\avanti\\bin\\avanti-cl.exe')            # oder wo
> auch immer avanti-cl liegt
> xin.write(job)
> xin.write('\x1a')
> result = xout.read()
> log = xerr.read()
> 
> So weit ich es erkennen kann, bleibt das Skript beim read-Aufruf haengen.
> Was ist los?

Spekulation:
Sofern Sie den Kanal zu avanti-cl nicht schliessen, tut
avanti-cl es auch nicht. D.h. Sie haben zwar alles in
result, das read() wartet jedoch auf mehr. Ich kenne
python nicht gut genug, um vorher zu einem xin.close()
raten zu koennen (Das write '\x1a' scheint mir in die
Richtung zu gehen, ist aber ziemlich DOS-ig): 
Sich ueber Sockets mit stdin *und* stdout eines aufgerufenen 
Programms gleichzeitig zu verbinden, kann i.A. recht tueckisch
sein (moeglicherweise erzeugt python hier implizit mehrere 
Threads)

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro