Python-撤消标准输出重定向

jj1*_*172 2 python

所以我知道从

在Python中将标准输出重定向到“无”

您可以抑制 print 语句。但是是否可以稍后撤消该命令,以便在特定点之后,打印语句确实会再次打印?

例如,假设我想打印“b”而不是“a”。

我会做:

import os
f = open(os.devnull, 'w')
sys.stdout = f

print("a")

# SOME COMMAND

print("b")
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我“一些命令”是什么吗?

dan*_*ano 6

原件sys.stdout始终保存在sys.__stdout__

sys.stdout = sys.__stdout__
Run Code Online (Sandbox Code Playgroud)

但是,文档确实指出,最好明确保存原始文件sys.stdout

它还可用于将实际文件恢复为已知的工作文件对象,以防它们被损坏的对象覆盖。但是,执行此操作的首选方法是在替换之前显式保存以前的流,并恢复保存的对象。