问题:代码完成时发出声音警报
我处于这样一种情况,我的代码要花很长时间才能运行,并且我不想一直盯着它,但想知道何时完成。
完成后,如何使(Python)代码听起来像是“警报”?我当时正在考虑使其在代码末尾时播放.wav文件…
这甚至是可行的想法吗?如果是这样,我该怎么办?
回答 0
在Windows上
import winsound
duration = 1000 # milliseconds
freq = 440 # Hz
winsound.Beep(freq, duration)
其中freq是频率(单位为Hz),持续时间以毫秒为单位。
在Linux和Mac上
import os
duration = 1 # seconds
freq = 440 # Hz
os.system('play -nq -t alsa synth {} sine {}'.format(duration, freq))
为了使用此示例,您必须安装sox
。
在Debian / Ubuntu / Linux Mint上,在终端中运行以下命令:
sudo apt install sox
在Mac上,在终端(使用macports)中运行以下命令:
sudo port install sox
在Mac上的演讲
import os
os.system('say "your program has finished"')
在Linux上的演讲
import os
os.system('spd-say "your program has finished"')
您需要speech-dispatcher
在Ubuntu中安装该软件包(或在其他发行版中安装相应的软件包):
sudo apt install speech-dispatcher
回答 1
print('\007')
播放铃声
回答 2
这个似乎在Windows和Linux *上都可以使用(根据这个问题):
def beep():
print("\a")
beep()
在Windows中,可以放在末尾:
import winsound
winsound.Beep(500, 1000)
where 500 is the frequency in Herz
1000 is the duration in miliseconds
要在Linux上工作,您可能需要执行以下操作(根据QO的评论):
- 在终端中,键入“ cd /etc/modprobe.d”,然后键入“ gksudo gedit blacklist.conf”
- 评论说“ blacklist pcspkr”的行,然后重新启动
- 还要检查终端首选项是否已选中“ Terminal Bell”。
回答 3
可以使用ubuntu语音调度程序:
import subprocess
subprocess.call(['speech-dispatcher']) #start speech dispatcher
subprocess.call(['spd-say', '"your process has finished"'])
回答 4
我假设您想要标准的系统铃声,而不想关心频率和持续时间等,您只想要标准的Windows铃声。
import winsound
winsound.MessageBeep()
回答 5
Kuchi的答案在OS X Yosemite(10.10.1)上对我不起作用。我确实找到了afplay
命令(在这里),您可以从Python调用该命令。无论是否启用了终端音频铃,并且没有第三方库,此方法都有效。
import os
os.system('afplay /System/Library/Sounds/Sosumi.aiff')
回答 6
请参阅:Python声音(“铃声”)
当我想做同样的事情时,这对我有帮助。
所有学分归gbc
引用:
你有没有尝试过 :
import sys
sys.stdout.write('\a')
sys.stdout.flush()
在Mac OS 10.5上适合我
实际上,我认为您的原始尝试也可以进行一些修改:
print('\a')
(您只需要在字符序列周围加上单引号)。
回答 7
为什么要完全使用python?您可能会忘记删除它,并将其检入存储库。只需使用&&和另一个命令运行python命令以运行警报。
python myscript.py &&
notify-send 'Alert' 'Your task is complete' &&
paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
或将函数放入.bashrc中。我在这里使用apython,但是您可以覆盖“ python”
function apython() {
/usr/bin/python $*
notify-send 'Alert' "python $* is complete"
paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
}
回答 8
可以通过以下代码来完成:
import time
time.sleep(10) #Set the time
for x in range(60):
time.sleep(1)
print('\a')
回答 9
import subprocess
subprocess.call(['D:\greensoft\TTPlayer\TTPlayer.exe', "E:\stridevampaclip.mp3"])