如何在不抑制实时打印的情况下捕获 jupyter 单元输出?
How to capture jupyter cell output without supressing live printing?
在 jupyter 中有一个神奇的函数可以捕获和解析单元格的输出:
%%capture capt_out
# cell body that prints interesting stuff every second
# another cell
# code for printing or processing output (i.e for plots):
print(capt_out)
问题是,我需要实时查看输出(因为这是一个 Darknet 模型训练,我需要知道取得了多少进展)然后解析它以根据它创建绘图。
有没有一种简单的方法可以在不抑制打印的情况下捕获输出?
这不是通用解决方案,但适用于我的情况:
!./darknet detector some_parameters 2>&1 | tee some_file.txt
由于我的 jupyter 单元通过 bash 运行二进制文件,我可以简单地使用 tee
命令将输出保存到文件,而无需抑制实时打印。然后我用 python
读取了这个文件
with open(some_file.txt, r) as f:
text = f.read()
2>&1
将 stderr 重定向到 stdout。
在 jupyter 中有一个神奇的函数可以捕获和解析单元格的输出:
%%capture capt_out
# cell body that prints interesting stuff every second
# another cell
# code for printing or processing output (i.e for plots):
print(capt_out)
问题是,我需要实时查看输出(因为这是一个 Darknet 模型训练,我需要知道取得了多少进展)然后解析它以根据它创建绘图。
有没有一种简单的方法可以在不抑制打印的情况下捕获输出?
这不是通用解决方案,但适用于我的情况:
!./darknet detector some_parameters 2>&1 | tee some_file.txt
由于我的 jupyter 单元通过 bash 运行二进制文件,我可以简单地使用 tee
命令将输出保存到文件,而无需抑制实时打印。然后我用 python
with open(some_file.txt, r) as f:
text = f.read()
2>&1
将 stderr 重定向到 stdout。