Python 使用标准输出时,为什么需要更改为文件对象?

Python 使用标准输出时,为什么需要更改为文件对象?,python,stdout,Python,Stdout,下面是使用标准输出模块的示例 #redirect.py import sys f = open('t.txt', 'w') stdout = sys.stdout -----> first one sys.stdout = f -----> second one print 'Sample output' print 'Good' print 'Good' f.close() sys.stdout = stdout -----> thi

下面是使用标准输出模块的示例

#redirect.py

import sys

f = open('t.txt', 'w')        
stdout = sys.stdout   -----> first one
sys.stdout = f        -----> second one
print 'Sample output'
print 'Good'
print 'Good'
f.close()
sys.stdout = stdout   -----> third one
我不明白为什么上面这三件事的意思


提前感谢=)

print
只需处理其参数,然后调用
sys.stdout.write()
。替换
sys.stdout
允许您捕获
print
的输出并重定向它。

您能解释第一个和第三个吗?嗯,保存并恢复原始值。对不起,您能详细解释一下吗?我想知道为什么要保存和恢复sys.stdout,以及在这种情况下的原始值是什么?非常感谢:)我只想知道您上面提到的原始值的含义。原始sys.stdout指向您正在执行python的终端,您正在使用的gui的输出标签,以及您希望看到的打印内容。第一个存储原始的默认输出终端、gui标签等。第二个将打印写入文件t.txt。第三种方法使打印回溯到默认文件、终端等。