我在Ubuntu上使用eSpeak,并有一个Python 2.7脚本,它可以打印和显示一条消息:
import subprocess
text = 'Hello World.'
print text
subprocess.call(['espeak', text])
eSpeak会产生所需的声音,但会使shell混乱,并出现一些错误(ALSA lib…,没有socket connect),因此我无法轻松阅读之前打印的内容。退出代码为0。
不幸的是,没有文档化的选项来关闭它的详细性,所以我正在寻找一种方法,只在视觉上使它安静下来,并保持打开的shell干净,以便进行进一步的交互。
我该怎么做?
使用^{} (python 2.7中的新功能)。如果命令失败,它将抑制stdout并引发异常。(它实际上返回stdout的内容,因此如果需要,您可以稍后在程序中使用它。)示例:
也可以使用以下命令抑制stderr:
对于2.7之前的版本,使用
在这里,你可以用
将输出重定向到DEVNULL:
它实际上与运行此shell命令相同:
这里有一个更便携的版本(只是为了好玩,在你的情况下没有必要):
相关问题 更多 >
编程相关推荐