在我的代码中的某个时刻,我将stdout重定向到一个文件:
sys.stdout = open(os.path.join(folder, file_env), 'w')
稍后,我想回到通常的IPython控制台(我在linux上使用Anaconda)
然而,如果我这样做
sys.stdout = sys.__stdout__
控制台输出显示在shell中,spyder是根据需要启动而不是在iPython控制台中。 将它重定向到IPython控制台的正确方法是什么?
答案 0 :(得分:1)
在IPython中; sys.stdout
不 sys.__stdout__
为sys.stdout
分配值时,请始终保存以前的版本:
oldstd = sys.stdout
sys.stdout = whatever
... your code.
sys.stdout = oldstd
或者更好,让它成为上下文管理器。