Python处理系统输出无返回
问题描述:
我有两个程序。第一个程序中的函数返回一些消息并包含许多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"
答
您可以通过它你自己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
谢谢你会检查并让你知道 –
请提供您正在解释的示例代码,以便我们可以轻松帮助您。我们不需要完整的代码或真实的代码,但需要一个代码片段来举例说明您当前正在执行的内容。 –
应显示在第一个python文件中调用包含print()的函数。发布您为每个文件使用的代码示例。 – mhawke
我意识到我在我的答案中假设您从其他python文件导入函数。是这样吗? – FunkySayu