我正在尝试将 stderr 消息从jupyter笔记本重定向到其他地方(出于记录目的)。在纯python (*。py文件)中运行时,我设法将 stdout 和 stderr 重定向到日志,但是似乎在运行时工作有所不同 IPython 接口(实际上是执行python的一个接口),因此成为了 jupyter笔记本。
似乎IPython在python之前处理stdout和stderr。因此,在python级别进行的所有重定向都不会生效。
感谢this post,我意识到IPython有一个IPython.utils.io.capture_output
对象,该对象可以捕获stdout和stderr的输出,以便在笔记本中执行给定的单元格。
它适用于stdout
,但不适用于stderr
。这里有输出的屏幕截图:
任何建议将不胜感激,谢谢! IPython版本:7.12