无法在两个子进程之间切换

时间:2016-08-10 07:44:10

标签: python python-2.7 subprocess

我正在尝试使用两个子进程。 我打开第一个并给他发一些东西,然后我打开第二个并给他发一些东西。在这两种情况下,我都使用stdin.write发送

process1 = subprocess.Popen([path], stdin = subprocess.PIPE,)
process1.stdin.write('some string1')
process2 = subprocess.Popen([path], stdin = subprocess.PIPE,)
process2.stdin.write('some string 2')

但是当我想再次发送到process1时,我会做同样的事情,但它什么都不做。 我如何再次与流程1沟通?

1 个答案:

答案 0 :(得分:0)

它应该可以正常工作。

例如:

$ cat 1.py
import subprocess

process1 = subprocess.Popen("cat > file1", shell=True, stdin=subprocess.PIPE)
process1.stdin.write('some string1\n')
process2 = subprocess.Popen("cat > file2", shell=True, stdin=subprocess.PIPE)
process2.stdin.write('some string 2\n')
process1.stdin.write('some string3\n')

运行程序并检查结果:

$ python 1.py
$ cat file1
some string1
some string3
$ cat file2
some string 2

所以,正如你所看到的,它只是有效。