import sys


class Tee(object):
    def __init__(self, name, file_only=False):
        self.file = open(name, "a")
        self.stdout = sys.stdout
        self.stderr = sys.stderr
        sys.stdout = self
        sys.stderr = self
        self.file_only = file_only

    def __del__(self):
        sys.stdout = self.stdout
        sys.stderr = self.stderr
        self.file.close()

    def write(self, data):
        self.file.write(data)
        if not self.file_only:
            self.stdout.write(data)
        self.flush()

    def flush(self):
        self.file.flush()