Hello all, Before I ask the question a couple of notes :
* This question is for implementing a script inside the Wing IDE. For some reason using the subprocess module doesn't work so I need a solution that doesn't use this module. * The platform is Windows and I'm happy with a Windoze only solution. :-) I would like to execute subprocesses asynchronously and capture stdout / stderr as a single stream. If I use "os.popen3(executable)" it gives me separate pipes for stdout and stderr, but reads from them are blocking. The output on stdout and stderr may be interleaved and I would like to display them *as* they arrive. That means I can't just read from them and output the results. The only solution I can think of is to read from both a character at a time on two separate threads, putting the data into a queue. A separate thread could pull characters off the queue and display them. (I don't need to differentiate between stdout and stderr when I display.) Can anyone think of a better solution ? My current code works, but *doesn't* capture stderr : from threading import Thread pipe = os.popen(executable) def DisplayOutput(): while True: output = pipe.read(1) if not output: break display(output) Thread(target=DisplayOutput).start() All the best, Fuzzyman http://www.voidspace.org.uk/python/articles.shtml -- http://mail.python.org/mailman/listinfo/python-list