Понимание Popen.communicate

У меня есть скрипт с именем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()Висит навсегда.

Ответы на вопрос(3)

Ваш ответ на вопрос