Rüdiger Ranft schrieb:
Diez B. Roggisch schrieb:
Rüdiger Ranft schrieb:
Hi all,

I need to call some programms and catch their stdout and stderr streams.
While the Popen class from subprocess handles the call, I get the
results of the programm not until the programm finishes. Since the
output of the programm is used to generate a progress indicator, I need
a way to acces the values written to stdout/stderr as fast as possible.
Use the communicate()-method of Popen-objects.

It gives the same behavior, the first call to communicate gets all text,
the second gives a closed handle error :(. I also tried
p.communicate(''), which gives the same as p.communicate(None) result.

That's likely due to buffering then. You could try & see if flushing on the side of the subprocess works (you can't do that from python's side of things within this scenario).

Or you might want to use pexpect that emulates a pseudo-terminal which also changes the way data is displayed.

Diez
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to