Python 标准输出文件中缺少终端输出

Python 标准输出文件中缺少终端输出,python,terminal,Python,Terminal,我使用这样的代码块将所有终端输出打印到一个文件中。大部分输出都打印在文件上。但是,只有部分内容(最后)无法打印到文件中。如何修复此问题?也许您应该在最后关闭()文件,这样系统就会知道必须保存其缓冲区中的所有数据。系统通常将数据保存在内存中,以便在您尝试读取数据时能够更快地访问数据,并且只有在您正确关闭数据时,系统才能保存数据。 class Logger2(object): def __init__(self): self.terminal = sys.stderr

我使用这样的代码块将所有终端输出打印到一个文件中。大部分输出都打印在文件上。但是,只有部分内容(最后)无法打印到文件中。如何修复此问题?

也许您应该在最后关闭()文件,这样系统就会知道必须保存其缓冲区中的所有数据。系统通常将数据保存在内存中,以便在您尝试读取数据时能够更快地访问数据,并且只有在您正确关闭数据时,系统才能保存数据。
class Logger2(object):
    def __init__(self):
        self.terminal = sys.stderr

    def write(self, message):
        self.terminal.write(message)
        Output2.write(message)

    def flush(self):
        pass

os.makedirs(os.path.dirname(Output_dir))
Output = open(Output_dir + 'output.txt', "w")
Output2 = open(Output_dir + 'error.txt', "w")
sys.stdout = Logger()
sys.stderr = Logger2()