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

禁止在Python调用中输出可执行文件

居京
2023-03-14
问题内容

我有一个名为的二进制文件A,在被调用时会生成输出。如果我从Bash shell调用它,则大多数输出​​都被抑制A > /dev/null。所有输出都被抑制A &> /dev/null

我有一个python脚本B,需要调用A。我希望能够从生成输出B,同时抑制的所有输出A

从内B,我已经试过os.system('A')os.system('A > /dev/null')os.system('A &> /dev/null')os.execvp('...')等,但这些都不抑制所有来自A的输出

我可以运行B &> /dev/null,但是那也抑制了所有B的输出,我也不想这样做。

有人有建议吗?


问题答案:

如果您拥有Python
2.4,则可以使用subprocess模块:

>>> import subprocess
>>> s = subprocess.Popen(['cowsay', 'hello'], \
      stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0]
>>> print s
 _______ 
< hello >
 ------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||


 类似资料:
  • 问题内容: 我有一个名为’a’的二进制文件,它在被调用时生成输出。如果我从 在bashshell中,大部分输出被“a>/dev/null”抑制。所有的 输出被 我有一个名为“B”的python脚本,需要调用“a”。我希望能够 从“B”生成输出,同时禁止从“A”生成所有输出。 在“B”中,我试过, 以及,等等,但这些都不是 抑制A的所有输出。 我可以运行’B&>/dev/null’,但这也会抑制’B

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

  • 问题内容: 我在将当前项目提取到可执行jar文件时遇到问题。当我在日食中按下运行按钮时,一切正常,但是当我这样做时 然后启动.jar文件;我唯一得到的是带有灰色画布的窗口。它应该启动我编写的游戏(spaceInvaders)。 这是我上载项目的github的链接。我真的不知道错误在哪里,在哪里看。在我的代码中?在我安装的JRE / JDK中?创建罐子时我做错什么了吗? 请帮忙 -。- 问题答案:

  • 问题内容: 我需要从我的Python脚本执行该脚本。 可能吗?该脚本会生成一些输出,并写入一些文件。如何访问这些文件?我尝试了子流程调用功能,但没有成功。 应用程序“ bar”还引用了一些库,除了输出外,它还创建了文件“ bar.xml”。我如何访问这些文件?只是通过使用open()? 谢谢, 编辑: Python运行时的错误仅是这一行。 问题答案: 要执行外部程序,请执行以下操作: 是的,假设您

  • 问题内容: 默认情况下,Python的解释器是否启用输出缓冲? 如果答案是肯定的,那么有什么方法可以禁用它? 到目前为止的建议: 使用命令行开关 包装每次写入后刷新的对象 设置环境变量 还有其他方法可以在执行过程中以编程方式在中设置一些全局标志吗? 问题答案: 你可以使用”python -u”()或通过设置环境变量PYTHONUNBUFFERED来跳过整个python进程的缓冲。 你还可以将替换为

  • 问题内容: 如何使用文件快速关闭所有 Log4J 输出? 问题答案: 将级别设置为OFF(而不是DEBUG,INFO等)。