Python:存储来自不同模块函数的打印输出

2024-10-01 17:34:42 发布

您现在位置:Python中文网/ 问答频道 /正文

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

import someModule
......
f.open('test.v','w')
out = storetheprintoutputasstring(someModule.main())
f.write(out)
f.close

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


Tags: 模块文件函数字符串testimportclosemain
2条回答

我认为你要求做的是一个黑客,所以我认为你应该这样做。在

下面是如何使用with语句将stdout重定向到文件:

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'

mod1.py:

def main():
    print "BOHOO"

mod2.py:

^{pr2}$

运行python mod2.py。在

试验v包含:

BOHOO

相关问题 更多 >

    热门问题