Floris Bruynooghe wrote: > Benjamin Watine wrote: > > Could you give me more information / examples about the two solutions > > you've proposed (thread or asynchronous I/O) ? > > The source code of the subprocess module shows how to do it with > select IIRC. Look at the implementation of the communicate() method.
And here's a thread example, based on Benjamin's code: import subprocess import thread def readtobox(pipe, box): box.append(pipe.read()) cat = subprocess.Popen('cat', shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE) myVar = str(range(1000000)) # arbitrary test data. box = [] thread.start_new_thread(readtobox, (cat.stdout, box)) cat.stdin.write(myVar) cat.stdin.close() cat.wait() myNewVar = box[0] assert myNewVar == myVar print len(myNewVar), "bytes piped around." -- --Bryan -- http://mail.python.org/mailman/listinfo/python-list