我正在尝试并行运行两个进程。这两个程序在没有Ctrl+C的情况下都不会“结束”(顺便说一下,我使用的是Linux),因此os.system不会返回命令的输出。我想要一种方法来创建两个独立于主Python线程的进程,并读取它们的文本,因为它显示。我还希望能够向进程发送字符(而不是作为命令,因为进程会自动解释按键)。我需要这样的东西:
process1 = System("sh process1")
process2 = System("sh process2")
process1.Send("Hello, I'm sending text into process 1.")
text = process1.Read()
process2.Send(text)有没有办法做到这一点?我已经研究了Subprocess模块,但我不确定它是否能达到我想要的效果--或者如果它能做到,我也不确定该怎么做。
非常感谢所有回答的人,
发布于 2014-06-13 04:47:03
子进程执行您想要的操作。下面是一个写入和读取外部命令的示例:
import subprocess
proc = subprocess.Popen(["sed", "-u", "s/foo/bar/g"],
shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
proc.stdin.write("foobar\n");
print proc.stdout.readline(); # Writes "barbar"https://stackoverflow.com/questions/24193288
复制相似问题