Python - 在将stdout重定向到文件之后将其重置为正常

jon*_*omo 20 python stdout

在我的python程序开始时,我有以下行:

sys.stdout = open('stdout_file', 'w')
Run Code Online (Sandbox Code Playgroud)

在我的程序中途,我想将stdout设置回正常的标准输出.我该怎么做呢?

Bre*_*arn 32

原件stdout可以作为访问sys.__stdout__.这是记录在案的.


tro*_*zel 6

另一种常见的做法是存储默认的 stdout 和/或 stdin,然后在完成将输出/输入发送到自定义流后返回它们。例如:

orig_stdout = sys.stdout
sys.stdout = open('stdout_file', 'w')
sys.stdout = orig_stdout
Run Code Online (Sandbox Code Playgroud)


Phi*_*ipp 5

当然,对于 stderr 来说也是如此。最后,需要这些行来获取原始流。

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