Python声音(“贝尔”)
我想通过发出嘟嘟声来让Python程序在完成任务时发出警报。目前,我使用import os
,然后使用命令行语音程序说“过程完成”。我宁愿它是一个简单的“钟”。Python声音(“贝尔”)
我知道有一个函数可以在可可应用程序NSBeep中使用,但我认为这与此无关。
我也试过print(\a)
但是没有奏效。
我使用的是苹果机,如果你不能通过我的可可评论告诉,那可能会有所帮助。
谢谢!
你试过:
import sys
sys.stdout.write('\a')
sys.stdout.flush()
那我在这里10.5
其实在Mac OS,我觉得你原来的尝试的作品还带有少许的修改:
print('\a')
(你只需要在字符序列周围使用单引号)。
我在Ubuntu上,它不适合我。任何想法? – kecske 2011-11-26 23:39:33
我不得不在我的活动终端配置文件iTerm中关闭“沉默终端钟”选项print('\a')
才能正常工作。它在终端默认情况下工作正常。
您也可以使用Mac模块Carbon.Snd
播放系统提示音:
>>> import Carbon.Snd
>>> Carbon.Snd.SysBeep(1)
>>>
的碳模块没有任何文件,所以我只好用help(Carbon.Snd)
,看看哪些功能可用。它似乎是Carbon上的直接接口,因此Apple Developer Connection上的文档可能会有所帮助。
如果你有PyObjC(Python的 - Objective-C的桥)安装或OS上运行X 10.5的系统蟒蛇(其中附带PyObjC),你可以做
from AppKit import NSBeep
NSBeep()
播放系统警报。
我尝试了pygame模块的混音器,它工作正常。首先安装模块:
$ sudo apt-get install python-pygame
然后在程序中这样写:
from pygame import mixer
mixer.init() #you must initialize the mixer
alert=mixer.Sound('bell.wav')
alert.play()
有了pygame中你有很多的自定义选项,您可以另外进行实验。
建立在Barry Wark的答案... NSBeep()
从AppKit工作正常,但也使任务栏中的终端/应用图标跳转。 一些额外的线条与NSSound()
避免了,并给出使用另一种声音的机会:
from AppKit import NSSound
#prepare sound:
sound = NSSound.alloc()
sound.initWithContentsOfFile_byReference_('/System/Library/Sounds/Ping.aiff', True)
#rewind and play whenever you need it:
sound.stop() #rewind
sound.play()
标准的声音文件可以通过命令行locate /System/Library/Sounds/*.aiff
找到 通过NSBeep()
使用的文件似乎是'/System/Library/Sounds/Funk.aiff'
`进口OS ; os.system('say“Beer time。'');打印('\ a \ a \ a')` – 2015-08-27 22:41:47