为什么print(\a)没有空闲工作

2024-05-23 17:05:58 发布

您现在位置:Python中文网/ 问答频道 /正文

注意我稍微改变了q,这样它就不再是重复的了。对不起的。在

我正在运行这些耗时的生物信息学脚本。我希望他们做完后按一声哔声。在

我在OSX上

similar thread中,我发现print '\a'可能会工作,但在Idle中它只打印[]

为什么这在空闲状态下不起作用


Tags: 脚本状态生物thread空闲信息学similarprint
2条回答

它不发出哔声的原因是\a(或^G)是终端铃声代码;由处理stdout的程序将其转换为声音。终端.app将播放一个声音(除非您将其配置为执行“可视铃声”,而不是完全关闭),但Idle不会。当然,如果你跑的时候没有tty,你什么也得不到。在

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

import Cocoa
Cocoa.NSBeep()

当然,这播放的是OSX系统的哔哔声,而不是终端铃声。除了可能是不同的声音之外,这意味着如果禁用终端中的bell,脚本仍将发出哔声。(如果你真的想要一个终端铃声,你可以随时通过脚本编写终端,例如ScriptingBridge。但我觉得你不在乎。)

这个使用afplay的小Python代码片段可以满足我的需要:在程序末尾发出十声响亮的声音:

from os import system
for i in range(0,10):
    system('afplay /System/Library/Sounds/Glass.aiff')

我想导入系统的开销不小,但对我来说是可行的

相关问题 更多 >