当前位置: 首页 > 面试题库 >

访问函数调用的打印输出

锺离马鲁
2023-03-14
问题内容

我的脚本的一部分从foo另一个模块(很久以前由其他人编写,而我现在不想开始对其进行修改)中调用一个函数(简称为)。
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!

io.StringIO由于stdout预期是Unicode流,因此使用了Python 3版本:

#!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())


 类似资料:
  • 我正在尝试使用joblib来并行化在函数上运行的循环。我希望显示函数的中间打印命令,而不仅仅是函数的返回值。 我得到以下输出: 我希望获得以下输出(或类似输出): 编辑:我刚刚注意到它确实会在启动Jupyter笔记本的终端窗口中打印我所需的输出。有没有关于如何在我的笔记本上打印的想法。提前谢谢。

  • 本文向大家介绍PHP打印输出函数汇总,包括了PHP打印输出函数汇总的使用技巧和注意事项,需要的朋友参考一下 本篇文章一直来学习PHP中所有用于输出信息的函数,分类比较来学习其相同点与不同点,掌握日常开发中必备的技巧。 开发就一定需要调试代码,而PHP调试代码不能像iOS那种编译器语言可以通过Xcode这样的开发软件来单步调试,因此开发PHP的人员通常会通过输出函数打印相关提示信息来调试代码。 PH

  • 问题内容: 在调试Python脚本时,我真的很想知道整个程序的整个调用堆栈。理想的情况是,如果有一个用于python的命令行标志,它将导致Python在调用它们时打印所有函数名(我检查了,但是没有找到这种类型的东西)。 由于此脚本中函数的数量众多,因此,我尽量不要在每个函数和/或类的开头添加打印语句。 一个中间的解决方案是使用PyDev的调试器,放置几个断点并检查程序中给定点的调用堆栈,因此我暂时

  • 问题内容: 我刚开始学习Python,目前正在读一本教我的书,在这本书中,一个函数与我在下面编写的函数一样,会打印第一个函数中定义的实际文本。我运行我的脚本说: 作为输出。我究竟做错了什么?我安装了错误的Python或其他东西吗?我下载了3.3.0版本 这是我的代码: 问题答案: 您的函数已经打印了文本,您不需要打印函数。只是称呼他们(别忘了括号)。

  • 问题内容: 我正在读取文件并将其存储在t1中。如何访问t1中的元素?当我尝试打印时,我得到的是地址而不是值。还有和之间的区别是什么? 输出: 问题答案: String []是一个字符串数组,因此其未如您所愿打印的原因,请尝试: 或更简洁: 或者更好:

  • 我有一个flask应用程序,只有一条路线,没有复杂的事情发生,运行在docker容器中。我一辈子都不能让print语句出现在日志中(

  • 问题内容: 此函数创建字典,但不返回任何内容。但是,由于添加了,因此在运行函数时将显示函数的输出。进东西和进东西有什么区别? 问题答案: 打印只是将结构打印到输出设备(通常是控制台)上。而已。要从你的函数返回它,你可以执行以下操作: 为什么要回来?好吧,如果你不这样做,该词典将死亡(收集垃圾),并且在此函数调用结束后将无法再访问该词典。如果返回该值,则可以使用它进行其他操作。如: 看看发生了什么事

  • 问题内容: 背景 在我定期使用的所有其他编程语言中,无需声明新变量即可保存函数结果就可以对函数的返回值进行操作。 但是,在PHP中,这似乎并不那么简单: example1(函数结果是一个数组) example2(函数结果是一个对象) 问题答案: 这是专门用于数组解引用的功能,目前在php5.3中不支持该功能,但在下一个版本5.4中应该可以实现。另一方面,在当前的php版本中,对象取消引用是可能的。