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