【发布时间】:2013-05-22 00:31:27
【问题描述】:
我有一个名为 1st.py 的脚本,它创建了一个 REPL(读取评估打印循环):
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() 时,它会永远挂起。
【问题讨论】:
标签: python subprocess communicate