Python 为什么不是';t打印(\a)在空闲状态下工作
注意我稍微更改了q,使其不再是重复的。对不起 我正在运行这些耗时的生物信息学脚本。我希望他们完成后能发出嘟嘟声 我在OSX上 在a中,我发现Python 为什么不是';t打印(\a)在空闲状态下工作,python,macos,beep,beepbeep,Python,Macos,Beep,Beepbeep,注意我稍微更改了q,使其不再是重复的。对不起 我正在运行这些耗时的生物信息学脚本。我希望他们完成后能发出嘟嘟声 我在OSX上 在a中,我发现print'\a'可能有效,但在Idle中,它只打印[] 为什么它在空闲状态下不工作?它不发出蜂鸣声的原因是\a(或^G)是终端铃代码;由程序处理stdout将其转换为声音。Terminal.app将播放声音(除非您将其配置为执行“可视铃声”,而不是完全关闭),但Idle不会。当然,如果你在没有tty的情况下跑步,你什么也得不到 如果您不介意使用PyObjC
print'\a'
可能有效,但在Idle中,它只打印[]
为什么它在空闲状态下不工作?它不发出蜂鸣声的原因是
\a
(或^G
)是终端铃代码;由程序处理stdout将其转换为声音。Terminal.app将播放声音(除非您将其配置为执行“可视铃声”,而不是完全关闭),但Idle不会。当然,如果你在没有tty的情况下跑步,你什么也得不到
如果您不介意使用PyObjC(在所有最新版本的OS X上都预装了Apple安装的Pythons):
当然,这会播放OSX系统的哔哔声,而不是终端铃声。除了可能是不同的声音外,这意味着如果您禁用终端中的铃声,脚本仍将发出嘟嘟声。(如果你真的想要一个终端铃声,你可以随时通过脚本编写终端,例如ScriptingBridge。但我认为你不在乎。)这个使用afplay的小Python片段满足了我的需要:在程序结束时发出十声响亮的铃声:
from os import system
for i in range(0,10):
system('afplay /System/Library/Sounds/Glass.aiff')
我认为导入系统的开销不小,但对我来说很有效。@TheZ:我认为使用
PyGame
,甚至弹出afplay
,对于寻找系统蜂鸣声的人来说,可能是杀伤力太大了。@TheZ感谢链接,但如果可以避免的话,我想避免播放声音文件。@abarnert我当时正在离开“我更希望听到比OSX标准更长、更具攻击性的嘟嘟声“听起来需要外部声音的部分。此问题可能重复:。第二个问题行得通吗?谢谢,UV,但我想避免导入模块你有一个生物信息学脚本,可以在不导入任何模块的情况下工作?没有math
,itertools
,甚至没有sys
?无论如何,\uuuuuu内置\uuuuuu
命名空间中没有函数会发出蜂鸣声,因此终端铃声是给定该限制的唯一选项,这意味着您必须在终端.app中运行并保持铃声处于启用状态。
from os import system
for i in range(0,10):
system('afplay /System/Library/Sounds/Glass.aiff')