【发布时间】:2018-06-22 16:45:13
【问题描述】:
我有一个简单的python3脚本test.py:
print('Test')
while True:
inp = input('> ')
print(input)
当我尝试使用 subprocess.Popen 运行它并获取它的输出时,它会冻结:
from subprocess import Popen, PIPE
p = Popen(['python3', 'test.py'], stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=False)
print(p.stdout.read())
所以,我没有从该脚本获得任何输出。我尝试使用 communicate 并不知何故奏效了:
p.communicate()[0]
但我仍然需要使管道标准输出工作。从我的脚本获取输出的第一个示例有什么问题?
UPD: communicate 显示test.py 中有一个异常:EOF on input on line 4。为什么?如何与此类脚本交互?
【问题讨论】:
标签: python-3.x subprocess output