2017-08-10 78 views
0

我有两个程序。第一个程序中的函数返回一些消息并包含许多print。所以,我将第一个程序函数导入第二个程序并使用返回值。但是,我也需要第一个程序的print。我怎样才能得到它们?Python处理系统输出无返回

仅供参考我不能在回报中追加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" 
+0

请提供您正在解释的示例代码,以便我们可以轻松帮助您。我们不需要完整的代码或真实的代码,但需要一个代码片段来举例说明您当前正在执行的内容。 –

+0

应显示在第一个python文件中调用包含print()的函数。发布您为每个文件使用的代码示例。 – mhawke

+0

我意识到我在我的答案中假设您从其他python文件导入函数。是这样吗? – FunkySayu

回答

0

您可以通过它你自己StringIO对象修补sys.stdout

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 
+0

谢谢你会检查并让你知道 –