如何在Python 2.7中隐藏子进程的输出
我在Ubuntu上使用eSpeak
,并且有一个Python 2.7脚本可以打印并说出一条消息:
import subprocesstext = 'Hello World.'
print text
subprocess.call(['espeak', text])
eSpeak
产生所需的声音,但由于一些错误(ALSA lib ...
,没有套接字连接)而使外壳混乱,因此我无法轻松读取之前打印的内容。退出代码为0。
不幸的是,没有记录的选项可以关闭它的冗长性,因此我正在寻找一种方法,仅在视觉上使其静音并保持打开的外壳干净以进行进一步的交互。
我怎样才能做到这一点?
回答:
将输出重定向到DEVNULL:
import osimport 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