如何在Python 2.7中隐藏子进程的输出

我在Ubuntu上使用eSpeak,并且有一个Python 2.7脚本可以打印并说出一条消息:

import subprocess

text = 'Hello World.'

print text

subprocess.call(['espeak', text])

eSpeak产生所需的声音,但由于一些错误(ALSA lib ...,没有套接字连接)而使外壳混乱,因此我无法轻松读取之前打印的内容。退出代码为0。

不幸的是,没有记录的选项可以关闭它的冗长性,因此我正在寻找一种方法,仅在视觉上使其静音并保持打开的外壳干净以进行进一步的交互。

我怎样才能做到这一点?

回答:

将输出重定向到DEVNULL:

import os

import subprocess

FNULL = open(os.devnull, 'w')

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

它实际上与运行此shell命令相同:

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

以上是 如何在Python 2.7中隐藏子进程的输出 的全部内容, 来源链接: utcz.com/qa/407700.html

回到顶部