您的位置:首页 > 编程语言 > Python开发

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

2016-01-19 15:10 656 查看
#本文纯菜鸟,所有博客为个人学习记录所用。不对的地方希望大家多多指教。

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重定向

/article/7089914.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: