注意我略微更改了q,以使其不再重复。对不起。

我正在运行这些耗时的生物信息学脚本。我希望他们完成后听到提示音。

我在OS X上。

similar thread中,我发现print '\a'可能有效,但是在空闲状态下,它仅打印[]
为什么这在IDLE中不起作用

最佳答案

它不发出蜂鸣声的原因是\a(或^G)是终端铃声。由程序处理标准输出将其转换为声音。 Terminal.app将播放声音(除非您将其配置为执行“可视铃声”,而不是将其完全关闭),但是Idle不会。而且,当然,如果您没有tty来运行,您将一无所获。

如果您不介意使用PyObjC(它在所有最新版本的OS X上预装有Apple安装的Python):

import Cocoa
Cocoa.NSBeep()

当然,这会播放OS X系统的提示音,而不是终端铃声。除了可能会发出不同的声音外,这意味着如果在终端中禁用铃声,您的脚本仍会发出蜂鸣声。 (如果您确实需要终端机铃声,则可以始终通过例如ScriptingBridge编写终端机脚本。但我认为您不在乎。)

关于python - 为什么print(\a)在IDLE中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13313440/

10-12 13:59