2015-06-19 178 views
11

我期待在python中编写基于控制台的程序,它可以执行函数来执行通用任务,非常通用。是否有可能通过打印调用写入控制台而不需要返回字符串,类似于bash和windows shell允许将程序输出管道输送到文本文件,即Python捕获所有打印的输出

ipconfig> ipconfig.txt

但是在python程序里面调用一个函数时,打印到该函数内部的控制台上的所有内容都会作为一个字符串列表来收集,然后可以保存到一个txt文件中的用户选择?

+0

当然。从shell运行Python脚本,并像平常一样使用shell来重定向输出。 – kindall

回答

10

你可以通过设置sys.stdout是你的选择

import sys 

sys.stdout = open('out.dat', 'w') 
print "Hello" 

sys.stdout.close() 

不会显示任何输出的文件,这样做反而会创建一个名为out.dat与印刷文本文件。

请注意,这并不需要是实际的文件,但可以是StringIO实例,您可以使用getvalue方法来访问先前已打印的所有内容。

+0

谢谢,那就是我正在寻找的。 – BruceJohnJennerLawso