Python:将sys.stdout恢复为默认值

问题描述 投票:5回答:3

我想将输出写入文件,因此我做了

sys.stdout = open(outfile, 'w+')

但是我想在写入文件后再打印回控制台

sys.stdout.close()
sys.stdout = None

我得到

AttributeError: 'NoneType' object has no attribute 'write'

显然,默认输出流不能为None所以我怎么对Python说>]:

sys.stdout = use_the_default_one()

我想将输出写入文件,因此我做了sys.stdout = open(outfile,'w +'),但是随后我想在写入文件sys.stdout.close()后再打印回控制台sys.stdout = None然后我得到了...

python python-3.x stdout
3个回答
4
投票

低级方案将重新分配给sys.__stdout__


3
投票

在Python3中使用redirect_stdout;以类似的情况为例:


1
投票

根据答案here,您无需保存对旧标准输出的引用。只需使用sys .__ stdout __。

© www.soinside.com 2019 - 2024. All rights reserved.