connect file object to standard output?

Diez B. Roggisch deets at
Mon May 8 17:24:13 CEST 2006

beliavsky at wrote:

> I want to write a function that writes to an output file if specified
> and otherwise to standard output. How can I connect a file object to
> standard output in the code below? I could use an if statement to
> choose between print and print>>fp throughout the function, but this
> seems awkward. I think there is a way to connect standard output to a
> file, but I'd prefer not to do that, since I want to use plain print
> statements to warn about errors in the function and have their output
> appear on the screen. Thanks.
> def write_data(data,out_file=""):
>     if (out_file != ""):
>         fp = open(out_file,"w")
>     else
         fp = sys.stdout
>     print>>fp,data
>     # more print>>fp statements follow

sys.stdout _is_ a file...


More information about the Python-list mailing list