code: def tee(*popenargs, **kwargs):
      import subprocess, select, sys
      process = subprocess.Popen(
              stdout=subprocess.PIPE, stderr=subprocess.PIPE,
              *popenargs, **kwargs)
      stdout, stderr = '', ''
      def read_stream(input_callback, output_stream):
          read = input_callback()
          output_stream.write(read)
          output_stream.flush()
          return read
      while process.poll() is None:
          watch = process.stdout.fileno(), process.stderr.fileno()
          ready = select.select(watch, [], [])[0]
          for fd in ready:
              if fd == process.stdout.fileno():
                  stdout += read_stream(process.stdout.readline, sys.stdout)
              if fd == process.stderr.fileno():
                  stderr += read_stream(process.stderr.readline, sys.stderr)
      stdout += read_stream(process.stdout.read, sys.stdout)
      stderr += read_stream(process.stderr.read, sys.stderr)
      return stdout, stderr