【发布时间】:2012-07-01 10:40:40
【问题描述】:
我在 Ubuntu 上使用 eSpeak,并且有一个 Python 2.7 脚本,可以打印并说出一条消息:
import subprocess
text = 'Hello World.'
print text
subprocess.call(['espeak', text])
eSpeak 会产生所需的声音,但会因为一些错误(ALSA lib...,无套接字连接)而使外壳混乱,因此我无法轻松阅读之前打印的内容。退出代码为 0。
不幸的是,没有记录的选项可以关闭它的冗长,所以我正在寻找一种方法来仅在视觉上使其静音并保持打开的外壳清洁以进行进一步的交互。
我该怎么做?
【问题讨论】:
-
那你不能直接用 os.system 打电话吗?不理想,但我认为不应该打印
-
@JoranBeasley: os.system() 将打印到控制台,除非您重定向 shell 命令
-
不,os.system('espeak '+ text) 重现了这种行为。
-
@ferkulat:我更新了我的答案以显示
os.system语法。虽然只是为了说明。坚持使用子流程 -
非 2.7 特定版本:stackoverflow.com/questions/5495078/… 允许完美的
subprocess.DEVNUL解决方案。
标签: python subprocess espeak