Python处理系统输出没有返回

时间:2017-08-10 10:59:05

标签: python input printing output system

我有两个程序。第一个程序中的函数返回一些消息并包含许多print个。因此,我将第一个程序函数导入第二个程序并使用返回值。但是,我也需要第一个程序的print s。我怎么能得到它们?

仅供参考我无法在回报中附加print个值。有没有办法获得程序使用的所有打印件?

示例代码:

第一个program1.py

class Test():
    def first(self,name):
        print "first print"
        print "second print"
        print "third print"
        #do some thing..
        return {"sucess":"end result"}

第二个program2.py

from firstprog import Test
result = Test().first("testing")
return result + "first program prins here"

1 个答案:

答案 0 :(得分:0)

您可以将sys.stdout作为自己的StringIO对象进行修补。

import StringIO
import sys

def my_function():
    print("foo")
    return 5

stdout = sys.stdout
sys.stdout = my_stdout = StringIO.StringIO()

result = my_function()

sys.stdout = stdout
print(my_stdout.getvalue())  # prints foo
print(result)  # prints 5