当我使用以下类将两者打印到stdout和文件时,我得到以下python 3.2的错误。我在网上搜索了一个类似的问题,由其他人报告为python 3.2
链接在这里 。 http://bugs.python.org/issue12020
。有没有人解决这个问题?
异常AttributeError:忽略
中的'flush'class MyWriter:
def __init__(self, stdout, filename):
self.stdout = stdout
#self.logfile = open(filename, 'a')
self.logfile = open(filename, mode='a', encoding='utf-8')
self.encoding = 'utf-8'
def write(self, text):
self.stdout.write(text)
self.logfile.write(text)
self.stdout.flush()
self.stdout.buffer.flush()
def close(self):
self.stdout.close()
self.logfile.close()
logwriter = writer.MyWriter(sys.stdout,'svt.log');
sys.stdout = logwriter
答案 0 :(得分:0)
我认为您应该使用self.logfile.flush()
代替self.stdout.buffer.flush()
。你为什么要在write
时冲洗?
您必须为您的班级和其他一些方法实施flush
方法,以使其行为像真实文件一样(writeline
,writelines
,{{1} } 浮现在脑海中)。请注意,在错误报告中,seek
应该是flush()
。