首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python中的进程--不终止进程的提取

python中的进程--不终止进程的提取
EN

Stack Overflow用户
提问于 2015-05-06 13:17:55
回答 1查看 338关注 0票数 1

假设有一个程序用不同的输入产生不同的输出,如果输入是一个特定的值,则终止。例如,它可以用C++编写:

代码语言:javascript
复制
int main() {
    int i;
    while(true) {
        cin >> i;
        if (i) cout << i << endl;
        else break;
    }
    return 0;
}

在这个程序中,如果您输入一个整数,它将在屏幕上打印它。在输入0之前,程序永远不会终止。

那么如何用Python获取与stdin对应的stdout呢?也就是说,如果我在stdin中输入一个'1‘,我就会马上从stdout中获取一个'1’,而这个过程还没有结束。

结论:实现这一目标有两种途径。

  1. 使用subprocess.Popen,并将子进程的stdout或stdin视为文件,将其写入stdin (需要'\n'),并使用readline从stdout读取。
  2. 使用一个图书馆的计划。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-06 13:49:37

使用subprocess.Popen()

代码语言:javascript
复制
>>> import subprocess
>>> p = subprocess.Popen(['/your/cpp/program'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
>>> p.stdin.write('1\n')
>>> p.stdout.readline()
'1\n'
>>> p.stdin.write('10\n')
>>> p.stdout.readline()
'10\n'
>>> p.stdin.write('0\n')
>>> p.stdout.readline()
''
>>> p.wait()
0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30077975

复制
相关文章

相似问题

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