Redirecting Python stdout ,stderr and stdin

Jan knob nospam at nospam.yes
Mon Nov 24 05:14:32 EST 2003


On 24 Nov 2003 02:02:50 +0000, Alexander Schmolck <a.schmolck at gmx.net>
wrote:

>"Serge Orlov" <sombDELETE at pobox.ru> writes:
>
>> "Alexander Schmolck" <a.schmolck at gmx.net> wrote in message news:yfssmke8vl0.fsf at black132.ex.ac.uk...
>> > Jan Knop <nospam at nospam.yes> writes:
>> >
>> > > Hello
>> > >
>> > > I am writing a  Windows application where I need to  redirect stdin,
>> > > stdout and  stderr from Python.  to my application
>> > > Is it a simple way  of  do it  ?
>> >
>> > import sys
>> > sys.stdin, sys.stderr, sys.stdout = map(open, 'in.txt err.txt out.txt'.split(),
>> >                                               'r w w'.split())
>> 
>> That is why map should be deprecated asap ;)
>> 
>> sys.stdin = open("in.txt")
>> sys.stdout = open("out.txt","w")
>> sys.stderr = open("err.txt","w")
>
>The obfuscation in the above example was intended not to immediately overwhelm
>the OP (who expected having to use some winsock thingy) with simplicitly and
>clarity, but now you've spoilt it.
>
>
>'as

Hi 

Actually that what I wat in the end is a method for subsclassing the
python stdio's into my application window. This means that Python runs
in background with all  threes stdio streams redirected .
This is I believe somehow done    in the Komodo program from
ActiveState
As far as I have found out You need to define a Input and  output
class  and imlement Read Readline , Write and WriteLine  method in
these classes.  
Otherwise it will be necessary to somehow capture the Stdin stdout
streams  from python console  and redirect them .

with regards
Jan





More information about the Python-list mailing list