stdout redirect from Jupyter notebook is landing in the terminal

独自空忆成欢 提交于 2019-11-29 11:55:01

I'm not able to test that but the only explanation I see is that sys.stdout is not sys.__stdout__ but a rerouted/modified file object in order to be able to put data in cells (your comment indicates that it's a ipykernel.iostream.OutStream instance).

So instead of resetting to sys.__stdout__, you should store the reference of sys.stdout:

import sys
old_stdout = sys.stdout
sys.stdout = open('stdout.txt', 'w')
...
sys.stdout = old_stdout

Note that this method also works with a standard terminal.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!