У меня есть интерактивная программа под названием my_own_exe
. Во-первых, он печатает alive
, затем вы вводите S\n
, а затем снова печатаете alive
. Наконец, вы вводите L\n
. Он выполняет некоторую обработку и завершает работу.
Однако, когда я вызываю его из следующего python script, программа, похоже, зависала после распечатки первого "живого".
Может ли кто-нибудь здесь рассказать мне, почему это происходит?
//после прочтения последующих действий (спасибо вам, ребята), я изменил код следующим образом:
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)
программа теперь хорошо сочетается с первым входом 'S\n', но затем остановлена, а вторая вторая L L n игнорируется.
Может кто-нибудь дать мне понять, почему это так?