Python 3.x 异常属性错误:';齐平';在python 3.2中
当我使用下面的类同时打印到标准输出和文件时,Python3.2会出现以下错误。我在网上搜索,发现了其他人报告的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, '
这里是链接。 . 有人有解决这个问题的解决方案吗 异常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和其他一些方法,以使其表现得像一个真实的文件。