import subprocess
proc1 = subprocess.Popen(['cat'], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
proc2 = subprocess.Popen(['cat'], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
proc1.stdin.close()
proc1.wait()
使用Python 2.6.6在Debian上运行时,程序永远不会退出。奇怪的是,当我将最后两行更改为使用proc2
时,它确实会退出。
这里发生了什么?
答案 0 :(得分:0)
尝试在终端中输入不带参数的“cat”。 “cat”需要一些东西才能连接到标准输出。
>>> from subprocess import Popen, PIPE
>>> args = ["cat", "foobar"]
>>> reply = Popen(args, stdout=PIPE).communicate()[0]
>>> print (reply)
line 0
line 1
line 2
>>>
文档有很多用法示例:
http://docs.python.org/library/subprocess.html#replacing-shell-pipeline