Intercepting printed strings

Gabriel Genellina gagsl-py2 at
Fri Sep 19 11:21:56 CEST 2008

En Thu, 18 Sep 2008 19:24:26 -0300, Robert Dailey <rcdailey at>  

> I'm currently using Python 3.0 b3 and I'm curious as to how I can go  
> about
> intercepting things send to print() for some intermediate processing  
> before
> they're actually sent to sys.stdout. Right now I've thought of the
> following:
> Replace sys.stdout with a class named PrintStream. PrintStream is  
> defined as
> follows:
> class PrintStream:
>     def write( self, message ):
>         sys.__stdout__.write( '\t{0}'.format( message ) )
> Will this work? Basically I want to add a tab character in front of every
> message printed. Thanks.

Why don't you try it yourself?
You may replace builtins.print with your own function too. It's not  
exactly the same thing, but given your request "intercepting things send  
to print() before they're sent to sys.stdout" it may be more adequate.

Gabriel Genellina

More information about the Python-list mailing list