首页 >后端开发 >Python教程 >如何在 Python 中抑制子进程输出?

如何在 Python 中抑制子进程输出?

Susan Sarandon
Susan Sarandon原创
2024-12-16 19:22:11574浏览

How Can I Suppress Subprocess Output in Python?

子进程输出的抑制

当使用Python的子进程库调用外部程序时,它们的控制台输出可能会变得很麻烦,特别是对于像这样的详细应用程序电子说话。当 eSpeak 与预期音频一起发出诊断消息时,就会出现此问题,从而使 shell 变得混乱并阻碍后续交互。

为了解决此问题,我们可以采用一种称为输出重定向的技术。在 Python >= 3.3 中,DEVNULL 设备可用于将标准输出和错误流重定向到空目标,从而有效地静默它们:

import os
import subprocess

retcode = subprocess.call(['echo', 'foo'], 
    stdout=subprocess.DEVNULL,
    stderr=subprocess.STDOUT)

对于 Python

FNULL = open(os.devnull, 'w')
retcode = subprocess.call(['echo', 'foo'], 
    stdout=FNULL, 
    stderr=subprocess.STDOUT)

3.3,包括 2.7,可以使用以下方法:

retcode = os.system("echo 'foo' > /dev/null")

此方法相当于运行以下 shell 命令:

此技术可确保 eSpeak 中不需要的输出被抑制,使外壳保持干净并准备好进行进一步的用户交互。

以上是如何在 Python 中抑制子进程输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn