Compreendendo Popen.communicate
Eu tenho um script chamado1st.py
que cria um REPL (read-eval-print-loop):
print "Something to print"
while True:
r = raw_input()
if r == 'n':
print "exiting"
break
else:
print "continuing"
Eu então lancei1st.py
com o seguinte código:
p = subprocess.Popen(["python","1st.py"], stdin=PIPE, stdout=PIPE)
E então tentei isso:
print p.communicate()[0]
Ele falhou, fornecendo este rastreamento:
Traceback (most recent call last):
File "1st.py", line 3, in <module>
r = raw_input()
EOFError: EOF when reading a line
Você pode explicar o que está acontecendo aqui, por favor? Quando eu usop.stdout.read()
, paira para sempre.