Simultaneous output parsing of child process?

Fraser Gordon fraser.gordon at cognos.com
Thu Oct 2 10:45:54 EDT 2003


Hello,

Hopefully someone can help me out with this issue...

I have a python script that needs to run a shell command and be able
to react to output from that command as it occurs (as opposed to
waiting for the whole command to complete and then parsing the
output).  Is this possible with Python?

I created a test script that prints a line of output to stdout every 4
seconds or so.  I want to create a "parent" script that kicks off the
test script, and prints data as soon as the test script sends anything
to the standard output (ie. every 4 seconds).

Furthermore, the solution needs to support Windows, several flavors of
UNIX and potentially LINUX.

I would ideally like to have the following type of behaviour:

childPipe = kickOffChild('test.py')
while <child process still active>:
    line = childPipe.checkForStdOutput()
    if line:    # This should trigger once every 4 seconds in the
example above
        print "OUTPUT:", line
print "Process completed."


Any help would be greatly appreciated.

Fraser




More information about the Python-list mailing list