注意我略微更改了q,因此不再重复了。遗憾。
我正在运行这些耗时的生物信息学脚本。我希望他们在完成时发出哔哔声。
我在OS X上。
在similar thread我发现print '\a'
可能会有效,但在空闲状态下,这只会打印[]
为什么这不适用于IDLE
答案 0 :(得分:4)
它没有发出哔哔声的原因是\a
(或^G
)是终端铃声代码;由程序处理stdout将其转化为声音。 Terminal.app将播放声音(除非你将它配置为“视觉铃声”,而不是完全关闭它),但是空闲则不会。而且,当然,如果你在没有tty的情况下跑步,你什么也得不到。
如果您不介意使用PyObjC(在所有最新版本的OS X上预装Apple安装的Pythons):
import Cocoa
Cocoa.NSBeep()
当然这会播放OS X系统的蜂鸣声,而不是终端铃声。除了可能是一个不同的声音,这意味着如果你在终端中禁用铃声,你的脚本仍然会发出哔哔声。 (如果你真的想要一个终端铃,你总是可以通过例如ScriptingBridge来编写终端脚本。但我认为你不在乎。)
答案 1 :(得分:2)
这个使用afplay的微小Python片段可以满足我的需求:在节目结束时播放十个响亮的声音:
from os import system
for i in range(0,10):
system('afplay /System/Library/Sounds/Glass.aiff')
我认为导入系统的开销不小,但它对我有用