gpt4 book ai didi

python - 在整个程序完成之前,ipython notebook 不打印

转载 作者:太空狗 更新时间:2023-10-29 21:26:33 26 4
gpt4 key购买 nike

import time

print 1
time.sleep(5)

我分别在 IPython notebook 和普通脚本中运行了上面的代码。

IPython Notebook 中,直到 time.sleep(5) 完成后才会打印数字“1”,而在普通脚本中它会打印出数字'1' 首先进入 time.sleep(5)。那会发生什么?

这个例子只是为了说明我的问题:我在我的代码中的每个阶段都使用print打印一些文本,这需要很长时间才能完成,这样我就可以知道程序在哪里必须。我发现这在执行脚本时工作正常,但在 IPython Notebook 中,print 经常滞后,并且在整个程序完成时打印出所有内容。

有什么方法可以在 IPython Notebook 中解决这个问题吗?

最佳答案

这是一个缓冲问题。在打印后添加 sys.stdout.flush(),以立即查看输出。您还可以使用 python -u 命令或设置 PYTHONUNBUFFERED envvar。参见 Disable output buffering .

如果 python 以交互方式运行(在终端中),则使用行缓冲;如果重定向输出,则使用 block 缓冲(例如,~4K 字节缓冲区)。比较:

$ python your_script.py

$ python your_script.py | cat

第二种情况输出延迟。

参见 Q: Why not just use a pipe (popen())? 中的第二个原因

关于python - 在整个程序完成之前,ipython notebook 不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26348619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com