在我的 python 程序的开头,我有以下行:
sys.stdout = open('stdout_file', 'w')
在我的程序进行到一半时,我想将标准输出设置回正常的标准输出。我该怎么做呢?
原件stdout
可以作为sys.__stdout__
. 这是记录在案的。
当然,stderr 也是如此。最后,需要这些行来获取原始流。
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
另一种常见的做法是存储默认的标准输出和/或标准输入,然后在完成将输出/输入发送到自定义流后返回它们。例如:
orig_stdout = sys.stdout
sys.stdout = open('stdout_file', 'w')
sys.stdout = orig_stdout
打开文件并用文件变量交换sys变量
f = open("sample.txt", "w")
sys.stdout, f = f, sys.stdout
print("sample", flush=True)
把它拿回来
f, sys.stdout = sys.stdout, f
print("sample")