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