Python:存储来自不同模块功能的打印输出

Cos*_*Inc 2 python

我正在尝试将导入的另一个模块的函数的打印输出存储为字符串并将其写入文件.但是,该函数不返回字符串,只打印输出.所以我需要这样的东西:

import someModule
......
f.open('test.v','w')
out = storetheprintoutputasstring(someModule.main())
f.write(out)
f.close
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?请帮帮我,并提前感谢你

NPE*_*NPE 8

我认为你要做的事情有点像黑客,所以我认为你必须这样做.

以下是stdout使用该with语句重定向到文件的方法:

import sys
from contextlib import contextmanager

@contextmanager
def redirected(stdout):
    saved_stdout = sys.stdout
    sys.stdout = open(stdout, 'w')
    yield
    sys.stdout = saved_stdout

with redirected(stdout='file.txt'):
    print 'Hello'
print 'Hello again'
Run Code Online (Sandbox Code Playgroud)