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

禁止子进程的输出

梁学真
2023-03-14
问题内容

如何停止subprocess.Popen的输出?如果打印量很大,有时打印速度可能会很慢。


问题答案:

如果要完全丢弃它:

import subprocess
import os
with open(os.devnull, 'w') as fp:
    cmd = subprocess.Popen(("[command]",), stdout=fp)

如果您使用的是Python 2.5,则将需要使用from __future__ import with_statement,或者只是不使用with



 类似资料:
  • 问题内容: 我正在尝试使用PyQt为名为“ HandBrake”的视频转换器应用程序构建一个简单的GUI。 我的问题是,当我选择要转换的视频文件时,子进程Popen使用必需的args启动手刹应用程序,但是在等待手刹完成gui时会被阻止,因此我无法进行任何更改。(例如:我不能禁用按钮,也不能更改其文本) 我不是在寻找更复杂的解决方案,例如progressbar等,但是我想在等待程序完成转换的同时简单

  • 问题内容: 我有使用Python编写的自定义命令行,该命令行使用“ print”语句打印其输出。我通过生成一个子进程并使用 child.stdin.write 方法向其发送命令来从Node.js使用它。来源: 现在的问题是我没有以流动模式接收输出。我希望在打印子进程后立即获得它的输出,但是仅当子进程终止时(使用自定义cli的 quit 命令),我才接收所有命令的输出。 问题答案: 您需要在子进程中

  • 问题内容: 我正在Windows 8 / XP上使用Python 2.7。 我有一个程序A,它使用以下代码运行另一个程序B: B运行批处理脚本C。C是运行时间较长的脚本,即使C尚未完成,我也希望B退出。我已经使用以下代码(在B中)完成了此操作: 当我运行B时,它可以按预期工作。但是,当我运行A时,我希望它在B退出时退出。但是,即使B已经退出,A也会等到C退出。关于正在发生的事情以及可能的解决方案的

  • 我有一个用PHP编写的守护进程(不是最好的语言,但与我一起工作),它用于从队列接收作业,并在需要完成作业时处理它们。对于每个新作业,我使用pcntl_fork()将作业分叉到子进程中。在这个子进程中,我然后使用proc_open()执行用于音频转码的长时间运行的系统命令,完成后直接返回到子进程。作业完成后,子进程退出并由父进程清理。 为了保持这个守护进程始终运行,我使用upstart。这是我的暴发

  • 问题内容: 我试图用Python编写程序,并被告知运行.exe文件。运行此.exe文件时,它会吐出大量数据,并且我需要在屏幕上打印出一定的行。我很确定我需要使用或类似的东西,但是我是子处理的新手,没有任何线索。有人有简单的方法让我完成此工作吗? 问题答案: 像这样:

  • 问题内容: 为了从我的Python脚本启动程序,我使用以下方法: 因此,当我启动像这样的过程时我的程序将等待直到该过程完成为止,然后我才能获得程序的完整输出。如果我正在运行需要一段时间才能完成的过程,这将很烦人。 我可以让我的程序通过在循环完成之前轮询过程输出来逐行写过程输出吗? 问题答案: 你可以在命令输出行之后立即使用处理行。这是显示典型用例的完整示例: