On Apr 10, 2:56 am, "Diez B. Roggisch" <de...@nospam.web.de> wrote: > David Liang schrieb: > > > > > > > Hello, > > Sorry for the newbie question. How do I run a program that could > > block, waiting for user input, using subprocess.Popen? For example, > > > from subprocess import * > > > def foo(): > > a = Popen(['python'] ...) > > > I want to be able to get input from the user and send input to the > > subprocess, printing stdout and stderr as data becomes available, then > > return once the subprocess exits. Is it possible to send to the > > subprocess keyboard interrupts, EOF, and such? > > > I tried doing stdout=PIPE, stderr=PIPE, stdin=PIPE. I tried using > > communicate(), but could only call it once; subsequent calls raised > > "ValueError: I/O operation on closed file." > > And both a.stdout.read() and a.stderr.read() blocked the program. Any > > help would be much appreciated. > > Use pexpect, which emulates a pseudo-terminal speaking with the subprocess. > > Diez- Hide quoted text - > > - Show quoted text -
I am not sure about that particular issue put I did manage to get it working with windows in the dex tracker project.. you would have to search the files or something to figure out where.. when you are looking at examples it does matter wich operating system you are using at least for python 2.5 -- http://mail.python.org/mailman/listinfo/python-list