异常AttributeError:python 3.2中的'flush'

时间:2013-11-22 01:10:57

标签: python-3.x stdout flush

当我使用以下类将两者打印到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

1 个答案:

答案 0 :(得分:0)

我认为您应该使用self.logfile.flush()代替self.stdout.buffer.flush()。你为什么要在write时冲洗?

您必须为您的班级和其他一些方法实施flush方法,以使其行为像真实文件一样(writelinewritelines,{{1} } 浮现在脑海中)。请注意,在错误报告中,seek应该是flush()