[python-win32] How to monitor the stdout/stderr of somecmd.exe

byo byo at myrealbox.com
Sat Jun 19 20:36:17 EDT 2004


I'd like to write a python program that will monitor the stdout/stderr
of an executable (somecmd.exe) running on W2K. (simulated by sometask.py
as below) I'm trying to react to it's output *as it is happening* (eg.
thru monitor_sometask.py) by using win32pipe, but I find that I'm only
getting the pipe's output too long after the fact. How can I monitor the
output of somecmd.exe as it happens ? Thanks in advance.

Newbie


#
# monitor_sometask.py
#
import win32pipe
import time
f = win32pipe.popen("c:\python23\python sometask.py", 'r')
while 1:
     aLine = f.readline()
     if not aLine: break
     print 'now:', time.asctime(), '   process :', aLine
     # do something with aLine here
f.close()


#
# sometask.py
#
import time
for i in range(0,3):
     print time.asctime()
     time.sleep(2)



#
# sample output
#
now: Fri Jun 18 10:22:43 2004    process : Fri Jun 18 10:22:36 2004
now: Fri Jun 18 10:22:43 2004    process : Fri Jun 18 10:22:38 2004
now: Fri Jun 18 10:22:43 2004    process : Fri Jun 18 10:22:40 2004







More information about the Python-win32 mailing list