在Windows和Linux终端中,可以用>
和>>
符号将程序输出重定向到文件中,那么在程序内部是否也可以执行相应操作呢?
Python
使用三个IO
文件流来管理标准输入、输出和错误输出,分别是sys.stdin
、sys.stdout
和sys.stderr
所以,我们要做的仅仅是改变变量的值为目标文件流,就可以把输出重定向了。
import sys
file = open('C:\\test.txt','w')
sys.stdout = file
print('Hello world!')
file.close()
执行完这段代码,文件C:\test.txt
就会被创建,内容为Hello world!
当然,如果想要将重定向还原,只需要保存原来的sys.stdout
,最后将原来的值赋回去即可
import sys
file = open('C:\\test.txt','w')
oldstdout = sys.stdout
sys.stdout = file
print('Hello world!')
file.close()
sys.stdout = oldstdout
print('Hello world!')
这样你还能在控制台中看到Hello world!
的输出