我有一个程序,它打开一个子进程,并通过写入它的stdin
和读取它的stdout
来与它通信。你知道吗
proc = subprocess.Popen(['foo'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE)
proc.stdin.write('stuff\n')
proc.stdin.flush()
问题是,在读取时,如果我调用proc.stdout.read()
,并且当我尝试使用以下命令逐行读取时,它总是阻塞:
output = str()
while proc.stdout in select.select([proc.stdout], [], [])[0]:
output += proc.stdout.readline()
它仍然阻塞,因为select.select
返回proc.stdout
,即使已经读取了所有输出。我能做什么?你知道吗
注意,我没有使用proc.communicate
,因为我想与进程进行多次通信
目前没有回答
相关问题 更多 >
编程相关推荐