''' This example script runs foo python program, and communicates with it. For better understanding please run natively foo.py first, which is a very basic stdio handler script. ''' import sys import wexpect import os here = os.path.dirname(os.path.realpath(__file__)) # Path of python executable: pythonInterp = sys.executable prompt = ': ' # Start the child process p = wexpect.spawn(pythonInterp, [here + '\\foo.py']) # Wait for prompt p.expect(prompt) print(p.before) # Send the 'small integer' p.sendline('3') p.expect(prompt) print(p.before) # print the texts print(p.before, end='') print(p.match.group(0), end='') # Send the name p.sendline('Bob') # wait for program exit. p.wait() # print the texts print(p.read(), end='')