code: def stdout_redirected(to):
      
      stdout = sys.stdout
  
      stdout_fd = fileno(stdout)
      # copy stdout_fd before it is overwritten
      with os.fdopen(os.dup(stdout_fd), 'wb') as copied:
          stdout.flush()  # flush library buffers that dup2 knows nothing about
          try:
              os.dup2(fileno(to), stdout_fd)  # $ exec >&to
          except ValueError:  # filename
              with open(to, 'wb') as to_file:
                  os.dup2(to_file.fileno(), stdout_fd)  # $ exec > to
          try:
              yield stdout  # allow code to be run with the redirected stdout
          finally:
              # restore stdout to its previous value
              stdout.flush()
              os.dup2(copied.fileno(), stdout_fd)
docs: Lifted from: https://stackoverflow.com/questions/4675728/redirect-stdout-to-a-file-in-python
  
      This is the only way I've found to redirect stdout with curses. This way the
      output from questionnaire can be piped to another program, without piping
      what's written to the terminal by the prompters.