2017-08-10 97 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

謝謝你會檢查並讓你知道 –