python仿ob_start函数

调用某些第三方程序的时候为了能扑捉其输出信息并调用(并不想开一个子进程)

1
2
3
4
5
6
7
8
9
10
11
# b4dboy
def ob_start(func, input):
result = ''
oldstdout = sys.stdout
sys.stdout = buf = StringIO.StringIO()
func(input)
sys.stdout = oldstdout
result = buf.getvalue()
buf.close()
del buf
return result.strip()