Ipython Notebook似乎无法实时打印结果,但似乎会以某种方式进行缓冲,然后批量输出打印结果。如何在处理print命令后立即让ipython打印我的结果?
示例代码:
import time
def printer():
for i in range(100):
time.sleep(5)
print i
假设上面的代码在导入的文件中。我如何才能使它在调用打印机功能时每5秒打印一个数字,而不是在最后打印所有数字?
请注意,我无法编辑该功能,printer()
因为我是从某个外部模块获得的。我想以某种方式更改ipython Notebook的配置,以便它不使用缓冲区。因此,我也不想使用sys.stdout.flush(),我想根据问题实时进行操作,我不希望任何缓冲区开始。
我还尝试使用以下命令加载ipython笔记本:
ipython notebook --cache-size=0
但这似乎也不起作用。
从Python 3.3开始,print()
有一个附加的flush参数可用于强制刷新:
for i in range(10):
print(i, flush=True)
time.sleep(1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句