在Linux中创建两个进程并获得输出

2024-03-29 12:17:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着并行运行两个进程。这两个程序在没有Ctrl+C的情况下都不会“结束”(顺便说一句,我在Linux上),等等操作系统不会返回命令的输出。我想要一种方法来创建两个独立于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)

有办法吗?我已经研究了子流程模块,但我不确定它是否实现了我想要的目标——或者如果实现了,我也不确定如何实现它。你知道吗

感谢所有回答的人


Tags: 方法text文本命令程序send进程linux
1条回答
网友
1楼 · 发布于 2024-03-29 12:17:50

子进程做你想做的。下面是一个写入和读取外部命令的示例:

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"

相关问题 更多 >