I've got an interactive program called my_own_exe
. First, it prints out alive
, then you input S\n
and then it prints out alive
again. Finally you input L\n
. It does some processing and exits.
However, when I call it from the following python script, the program seemed to hang after printing out the first 'alive'.
Can anyone here tell me why this is happening?
// after reading the follow ups (thank you guys), i modified the code as following:
import subprocess
import time
base_command = "./AO_FelixStrategy_UnitTest --bats 31441 --chix 12467 --enxutp 31884 --turq 26372 --symbol SOGN --target_date " + '2009-Oct-16'
print base_command
proc2 = subprocess.Popen(base_command, shell=True , stdin=subprocess.PIPE,)
time.sleep(2);
print "aliv"
proc2.communicate('S\n')
print "alive"
time.sleep(6)
print "alive"
print proc2.communicate('L\n')
time.sleep(6)
the program now goes well with the first input 'S\n', but then stopped, and I the second 'L\n' is kinda ignored.
Can anyone give me an idea why it's like this?
proc2
? Or is not calling it since it has print in front of two of them? And if that's the case, why is freezing after the first print and not the second? – Longo