import sys backup_stdout = sys.stdout class output: """ Screen output is redirected to this class whenever set_screen is called. """ def __init__(self): self.screen = "" def __str__(self): return self.screen def __nonzero__(self): return bool(self.screen) def write(self, string): self.screen += string def reset(self): self.screen = "" def redirect_output(func, args): temp_screen = output() sys.stdout = temp_screen func(*args) sys.stdout = backup_stdout return temp_screen.screen.split('\n')[:-1]