【问题标题】:Restore std.out after redirecting it重定向后恢复 std.out
【发布时间】:2017-09-27 14:21:01
【问题描述】:

在我的代码中,我将标准输出重定向到一个文件:

sys.stdout = open(os.path.join(folder, file_env), 'w')

稍后,我想回到通常的 IPython 控制台(我在 linux 上使用 Anaconda)

但是,如果我这样做了

    sys.stdout = sys.__stdout__

控制台输出显示在 shell 中是从 spyder 启动的,而不是根据需要在 iPython 控制台中。 将其重定向到 IPython 控制台的正确方法是什么?

【问题讨论】:

  • 这和ksh有什么关系? (ksh 知识如何帮助某人回答这个问题?)
  • 你说得对,我已经删除了 ksh 标签

标签: python ipython


【解决方案1】:

在 IPython 中; sys.stdout 不是 sys.__stdout__

当你给sys.stdout赋值时,总是保存以前的版本:

oldstd = sys.stdout
sys.stdout = whatever
... your code. 
sys.stdout = oldstd

或者更好,让它成为上下文管理器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    相关资源
    最近更新 更多