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

禁止在库外部调用模块的输出

孟智志
2023-03-14
问题内容

使用机器学习库PyML时遇到一个烦人的问题。PyML使用libsvm来训练SVM分类器。问题是libsvm将一些文本输出到标准输出。但是因为那是在Python之外,所以我无法拦截它。我尝试使用问题Python中描述的方法使函数的标准输出静音,而不破坏sys.stdout并恢复每个函数调用,
restori)但这些方法均无济于事。

有什么办法可以做到这一点。不能修改PyML。


问题答案:

打开/dev/null以进行写作,用于os.dup()复制标准输出,并用于os.dup2()将打开内容复制/dev/null到标准输出。之后os.dup2()用于将复制的标准输出复制回真实标准输出。

devnull = open('/dev/null', 'w')
oldstdout_fno = os.dup(sys.stdout.fileno())
os.dup2(devnull.fileno(), 1)
makesomenoise()
os.dup2(oldstdout_fno, 1)


 类似资料:
  • 我希望检查我导入的(安装了pip的)模块内部的代码(如果相关的话,称为transformers)。因此,现在我所做的是将< code>breakpoint()放在site_package位置的相关位置,并调用< code>test.py中的模块。 但是,理想情况下,我希望在检查代码时即时设置和删除断点,就像我通常对我编写的 python 模块所做的那样。想知道外部库是否有类似的东西。 如果我能在我

  • 问题内容: 我有一个名为的二进制文件,在被调用时会生成输出。如果我从Bash shell调用它,则大多数输出​​都被抑制。所有输出都被抑制 我有一个python脚本,需要调用。我希望能够从生成输出,同时抑制的所有输出。 从内,我已经试过,和,等,但这些都不抑制所有来自A的输出 我可以运行,但是那也抑制了所有的输出,我也不想这样做。 有人有建议吗? 问题答案: 如果您拥有Python 2.4,则可以

  • 目标 建立一个 lesson2 项目,在其中编写代码。 当在浏览器中访问 http://localhost:3000/?q=alsotang 时,输出 alsotang 的 md5 值,即 bdd5e57b5c0040f9dc23d430846e68a3。 挑战 访问 http://localhost:3000/?q=alsotang 时,输出 alsotang 的 sha1 值,即 e3c766

  • translated_page: https://github.com/PX4/Devguide/blob/master/en/advanced/out_of_tree_modules.md translated_sha: 95b39d747851dd01c1fe5d36b24e59ec865e323e 外部模块 本教程描述了向PX4构建中添加外部模块的可能性。 外部模块可以使用与内部模块相同的模

  • 除了 element-ui 组件以及脚手架内置的业务组件,有时我们还需要引入其他外部组件,这里以引入 vue-count-to 为例进行介绍。 引入依赖 在终端输入下面的命令完成安装: $ npm install vue-count-to --save 加上 --save 参数会自动添加依赖到 package.json 中去。 使用 全局注册 main.js import countTo fro

  • 问题内容: 我需要针对其产生太多输出到一对夫妇共享库链接到我的C 程序 ,并 使得它们既没有用我的用途。我可以访问这些库的C 源代码,但无法对其进行修改。 当与我的代码链接时,是否可以将其输出重定向到其他流或取消显示?我希望使用C ++的简洁方式,但是由于担心那是不可能的,我也会对肮脏的链接程序黑客感到满意。作为最后的手段,“代理”也可以。 我使用的是GNU工具链(工作,,Linux下)。 问题答