sys.stdout的应用,Python标准输出sys.stdout的重定向

#本文纯菜鸟,所有博客为个人学习记录所用。不对的地方希望大家多多指教。

sys.stdout  :  standard output file object; used by print()

sys._stdout_  :  the original stdout; don't touch!

从sys的help文档中对sys.stdout的定义得知,sys.stdout 中存储的是输出去向的引用。比如说sys.stdout默认指向的是cmd的窗口([1]中称之为"控制台(console)",我个人理解“控制台”指的就是cmd窗口)。

当我们在Python中打印一个对象时print (obj),实际上是调用了 sys.stdout.write(obj+'\n')。

print将需要的内容打印到控制台,然后追加一个换行符。

以下两行实际上是等价的:

sys.stdout.write('hello'+'\n')
print 'hello'

下面给出一个使用sys.stdout的例子:

#coding=gbk
#将模块string的help文档保存到名为”help_for_string.log“的文件中
import sys,string
f = open('d:\\help_for_string.log','w')
sys.stdout = f
help(string)
f.close()
sys.stdout=sys.__stdout__ #两个下划线__stdout__

默认情况下,sys.stdout指向的控制台,help(string)会将string的帮助文档输出到cmd窗口上。若将sys.stdout指向被以“w”方式打开的文件“help_for_string.log”时,本该输出到cmd界面的内容被输出到(“w”)文件中。使用print()同样可以将某内容

参考:

[1] Python标准输出sys.stdout重定向

     http://www.cnblogs.com/turtle-fly/p/3280519.html


你可能感兴趣的:(python3)