Python 3.x 异常属性错误:';齐平';在python 3.2中

Python 3.x 异常属性错误:';齐平';在python 3.2中,python-3.x,stdout,flush,Python 3.x,Stdout,Flush,当我使用下面的类同时打印到标准输出和文件时,Python3.2会出现以下错误。我在网上搜索,发现了其他人报告的python 3.2的类似问题 这里是链接。 . 有人有解决这个问题的解决方案吗 异常AttributeError:忽略中的“刷新” class MyWriter: def __init__(self, stdout, filename): self.stdout = stdout #self.logfile = open(filename, '

当我使用下面的类同时打印到标准输出和文件时,Python3.2会出现以下错误。我在网上搜索,发现了其他人报告的python 3.2的类似问题
这里是链接。 . 有人有解决这个问题的解决方案吗

异常AttributeError:忽略中的“刷新”

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

我认为应该使用
self.logfile.flush()
而不是
self.stdout.buffer.flush()
。当你
的时候,为什么要刷新


您必须为您的类实现
flush
方法和一些其他方法,以使它的行为也像一个真实的文件(
writeline
writeline
seek
)。请注意,在错误报告中,
flush()
应该是
flush(self)

而不是
self.stdout.buffer.flush()
?您必须在类中实现flush和其他一些方法,以使其表现得像一个真实的文件。