我正在尝试使用两个子进程。 我打开第一个并给他发一些东西,然后我打开第二个并给他发一些东西。在这两种情况下,我都使用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沟通?
答案 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
所以,正如你所看到的,它只是有效。