Oliver Gericke
Oliver Gericke

Reputation: 21

Communication of a python parent process and a python subprocess

I have only recently started working with the subprocess-module, so i am sure, this is a rookie-question:

I am trying to start a python-subprocess from a python 3.5.2. parent script and retrieve information from it:

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)

What command do i have to give in the child-process to generate an output in the parent process?

I already tried print('something') and sys.stdout.write('something else') (coupled with sys.stdout.flush()) but nothing seems to work.

Upvotes: 2

Views: 1998

Answers (1)

Lily Yung
Lily Yung

Reputation: 62

The subprocess is running and its output is already directed to the parent process. There is no output generated because of 'C:\\IDLEX (Python GUI).exe' does not flush anything to stdout.

Your script is working:

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

Output:

Hello World

You may try to run C:\\IDLEX (Python GUI).exe directly in the cmd to check.

Upvotes: 1

Related Questions