class PrintWatcher(object):

    def __init__(self, ip):
        self.shell = ip

def post_execute(self):
    with open('/home/turkus/shell.txt', 'a+') as f:
        in_len = len(self.shell.user_ns['In'])
i = in_len - 1
in_ = self.shell.user_ns['In'][i]
out = self.shell.user_ns['Out'].get(i, '')
f.write('{}\n{}\n'.format(in_, out))

def load_ipython_extension(ip):
    pw = PrintWatcher(ip)
ip.events.register('post_run_cell', pw.post_execute)
Как распечатать консоль в текстовый файл ПОСЛЕ завершения программы (Python)?