gpt4 book ai didi

python - 访问函数调用的打印输出

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:19 26 4
gpt4 key购买 nike

我的部分脚本从另一个模块(很久以前由其他人编写的,我不想现在开始修改它)调用一个函数(让我们称它为 foo)。< br/>foo 将有趣的东西写入 stdout(但返回 None),部分是通过调用其他函数。我想访问 foo 写入 stdout 的这些有趣的东西。

据我所知,subprocess 用于调用我通常从命令行调用的命令。是否有我将从我的脚本中调用的 python 函数的等效项?

我在 python2.7 上,如果重要的话

最佳答案

正如@JimDeville 评论的那样,您可以交换标准输出:

#!python2.7
import io
import sys

def foo():
print 'hello, world!'

capture = io.BytesIO()
save,sys.stdout = sys.stdout,capture
foo()
sys.stdout = save
print capture.getvalue()

输出:

hello, world!

Python 3 版本使用 io.StringIO 而不是因为 stdout 应该是一个 Unicode 流:

#!python3
import io
import sys

def foo():
print('hello, world!')

capture = io.StringIO()
save,sys.stdout = sys.stdout,capture
foo()
sys.stdout = save
print(capture.getvalue())

关于python - 访问函数调用的打印输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14422797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com