Calvin Spealman <[EMAIL PROTECTED]> wrote: > No matter what I do I cant get the following code to do what I expect. > I hadn't used subprocess t o read and write to pipes of a > still-running app, and I just can't seem to get it right. What gives? > > import subprocess > > p = subprocess.Popen("python", stdout=subprocess.PIPE, stdin=subprocess.PIPE) > p.stdin.write('print 10\n') > assert p.stdout.readline() == '10\n'
To read and write to a still running app, you'll want to use pexpect probably. http://pexpect.sourceforge.net/ >>> import pexpect >>> p = pexpect.spawn("python") >>> p.expect(">>>") 0 >>> p.sendline("print 10\n") 10 >>> p.readline() ' print 10\r\n' >>> p.readline() '10\r\n' >>> Note that running python under pexpect puts it into interactive mode. -- Nick Craig-Wood <[EMAIL PROTECTED]> -- http://www.craig-wood.com/nick -- http://mail.python.org/mailman/listinfo/python-list