python父进程和python子进程的通信

时间:2017-03-02 11:20:23

标签: python subprocess

我最近才开始使用子进程模块,所以我确信,这是一个新手问题:

我正在尝试从python 3.5.2启动python-subprocess。父脚本并从中检索信息:

import subprocess

process = subprocess.Popen(
    'C:\\IDLEX (Python GUI).exe',
    shell  = True,
    stdout = subprocess.PIPE,
    )

while True:
    lines = process.stdout.readlines()
    for line in lines:
            print (line)

我必须在子进程中给出什么命令才能在父进程中生成输出?

我已经尝试print('something')sys.stdout.write('something else')(加上sys.stdout.flush()),但似乎没有任何效果。

1 个答案:

答案 0 :(得分:1)

子进程正在运行,其输出已定向到父进程。由于'C:\\IDLEX (Python GUI).exe'没有将任何内容刷新到stdout,因此没有生成输出。

您的脚本正在运行:

process = subprocess.Popen(
    'echo Hello World', # or change to any other executable or script to test
    shell  = True,
    stdout = subprocess.PIPE,
)

输出:

Hello World

您可以尝试直接在cmd中运行C:\\IDLEX (Python GUI).exe进行检查。