首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux中创建两个进程并获得输出

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

Stack Overflow用户
提问于 2014-06-13 04:22:40
回答 1查看 73关注 0票数 0

我正在尝试并行运行两个进程。这两个程序在没有Ctrl+C的情况下都不会“结束”(顺便说一下,我使用的是Linux),因此os.system不会返回命令的输出。我想要一种方法来创建两个独立于主Python线程的进程,并读取它们的文本,因为它显示。我还希望能够向进程发送字符(而不是作为命令,因为进程会自动解释按键)。我需要这样的东西:

代码语言:javascript
复制
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模块,但我不确定它是否能达到我想要的效果--或者如果它能做到,我也不确定该怎么做。

非常感谢所有回答的人,

EN

回答 1

Stack Overflow用户

发布于 2014-06-13 04:47:03

子进程执行您想要的操作。下面是一个写入和读取外部命令的示例:

代码语言:javascript
复制
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"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24193288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档