Dave S wrote: > On Tuesday 05 December 2006 20:58, Luke Paireepinart wrote: > >> Dave S wrote: >> >>> Hi all, >>> >>> Struggling with python & XP again. My app needs to know if a certain >>> program is running on my XP box >>> >>> Ideal world - I can get the output of 'tasklist.exe' into a string. >>> >>> I have tried >>> >>> os.execl('....') >>> It throws the output to the terminal + I need the exact path to the >>> executable (a bit of a trial) >>> >>> and >>> os.startfile('...') >>> it throws the output to a different window, but no exact path needed >>> >>> Any ideas how I can catch the output ? >>> >> You could try redirecting sys.stdout to a file-like class instance you >> create. >> >> > > OK ... could you give me a bit more on that ? ... probably me being a bit > dense :) > Um...
#test.py class FileLikeObject(object): def __init__(self,current_stdout): self.data = [] self.oldstdout = current_stdout def write(self,arg): if arg != '\n': self.data.append(arg) def output(self): sys.stdout = self.oldstdout print self.data sys.stdout = self import sys f = FileLikeObject(sys.stdout) sys.stdout = f print "hello." f.output() print "hi" f.output() #----------- Be careful playing with the dark magic.... Don't forget that print goes to stdout. HTH, -Luke > Cheers > > Dave > > > > > >>> Cheers >>> >>> Dave >>> >>> >>> _______________________________________________ >>> Tutor maillist - Tutor@python.org >>> http://mail.python.org/mailman/listinfo/tutor >>> > > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor