Issue of redirecting the stdout to both file and screen
人言落日是天涯,望极天涯不见家
kelvin.you at gmail.com
Mon May 28 05:17:39 EDT 2007
I wanna print the log to both the screen and file, so I simulatered a
'tee'
class Tee(file):
def __init__(self, name, mode):
file.__init__(self, name, mode)
self.stdout = sys.stdout
sys.stdout = self
def __del__(self):
sys.stdout = self.stdout
self.close()
def write(self, data):
file.write(self, data)
self.stdout.write(data)
Tee('logfile', 'w')
print >>sys.stdout, 'abcdefg'
I found that it only output to the file, nothing to screen. Why?
It seems the 'write' function was not called when I *print* something.
More information about the Python-list
mailing list