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

Reply via email to