Matt Domeier wrote:
Hi Wayne,

Yes, that should work perfectly, but it is in writing files that I'm having the problem. I'm still very new to python, so I only know to use something like filename.write(str(listname)) to write my list to a file.. Is there a straightforward method of combining the ease of the print function setup that you suggested with write?


Or could I somehow use the print function itself to write to the file (rather than just output to my shell/prompt)?

First note, print is a statement in python2.x and a function in python3.x.

In both case it is possible to redirect print's output to another file. Simply:

python2.x:
print >> f, "Hello World"

python3.x:
print("Hello World", file=f)

also for both versions:

import sys
sys.stdout = f
print("Hello World")
sys.stdout = sys.__stdout__ # return to normal

The universal stdout redirection (3rd method) was discouraged because it could mess up things if there are two or more routines that tries to override sys.stdout or in multithreading situation (it is there mainly for hackish quick and dirty scripts). The python2.x's redirection method looks ugly (for me). The python3.x's syntax is better, but is a bit verbose.

In any case, it is usually more recommended to use f.write() or f.writelines()

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to