在Jupyter中,通常情况下,实时打印(即时输出)是被默认抑制的,以便更好地管理和展示代码执行的结果。然而,我们可以使用一些技巧来捕获并显示实时打印的输出。以下是一种常用的方法:
sys.stdout
重定向:可以通过重定向sys.stdout
对象来捕获实时打印的输出。可以使用io.StringIO
类来创建一个内存缓冲区,然后重定向sys.stdout
到该缓冲区。这样,所有的打印输出都会被存储在缓冲区中,我们可以随时访问和显示这些输出。print("Hello, World!")
和print(2 + 2)
的输出将会被捕获并存储在output_buffer
中。通过恢复sys.stdout
并获取缓冲区的值,我们可以将其打印出来。IPython
的capture_output
上下文管理器:如果你在使用IPython内核的Jupyter环境中,可以使用IPython
库提供的capture_output
上下文管理器来捕获实时打印的输出。这种方法更为简洁和方便。print("Hello, World!")
和print(2 + 2)
的输出将会被捕获并存储在captured.stdout
中。我们可以直接打印该变量以显示捕获的输出。这些方法都可以在不抑制实时打印的情况下捕获Jupyter cell的输出。然后,我们可以对捕获的输出进行处理或显示,以满足我们的需求。
领取专属 10元无门槛券
手把手带您无忧上云