У меня есть script с именем 1st.py
, который создает REPL (read-eval-print-loop):
print "Something to print"
while True:
r = raw_input()
if r == 'n':
print "exiting"
break
else:
print "continuing"
Затем я запустил 1st.py
со следующим кодом:
p = subprocess.Popen(["python","1st.py"], stdin=PIPE, stdout=PIPE)
И затем попробовал это:
print p.communicate()[0]
Не удалось выполнить эту трассировку:
Traceback (most recent call last):
File "1st.py", line 3, in <module>
r = raw_input()
EOFError: EOF when reading a line
Можете ли вы объяснить, что здесь происходит, пожалуйста? Когда я использую p.stdout.read()
, он вешает навсегда.