mti*_*ger 122 python audio alarm
我的情况是我的代码需要很长时间才能运行,我不想一直盯着它,但想知道什么时候完成.
如何完成(Python)代码声音的"警报"?我正在考虑让它在到达代码末尾时播放.wav文件...
这甚至是一个可行的想法吗?如果是的话,我怎么能这样做?
Rya*_*axe 189
import winsound
duration = 1000 # milliseconds
freq = 440 # Hz
winsound.Beep(freq, duration)
Run Code Online (Sandbox Code Playgroud)
其中freq是以Hz为单位的频率,持续时间以毫秒为单位.
import os
duration = 1 # seconds
freq = 440 # Hz
os.system('play -nq -t alsa synth {} sine {}'.format(duration, freq))
Run Code Online (Sandbox Code Playgroud)
要使用此示例,您必须安装sox.
在Debian/Ubuntu/Linux Mint上,在终端中运行:
sudo apt install sox
Run Code Online (Sandbox Code Playgroud)
在Mac上,在终端中运行(使用macports):
sudo port install sox
Run Code Online (Sandbox Code Playgroud)
import os
os.system('say "your program has finished"')
Run Code Online (Sandbox Code Playgroud)
import os
os.system('spd-say "your program has finished"')
Run Code Online (Sandbox Code Playgroud)
您需要speech-dispatcher在Ubuntu(或其他发行版上的相应包)中安装该包:
sudo apt install speech-dispatcher
Run Code Online (Sandbox Code Playgroud)
小智 27
print('\007')
Run Code Online (Sandbox Code Playgroud)
播放铃声
Sau*_*tro 24
这个似乎适用于Windows和Linux*(来自这个问题):
def beep():
print "\a"
beep()
Run Code Online (Sandbox Code Playgroud)
在Windows中,可以放在最后:
import winsound
winsound.Beep(500,1000)
where 500 is the frequency in Herz
1000 is the duration in miliseconds
Run Code Online (Sandbox Code Playgroud)
*:要在Linux上工作,您可能需要执行以下操作(来自QO的评论):
Ish*_*are 17
可以使用ubuntu语音调度程序:
import subprocess
subprocess.call(['speech-dispatcher']) #start speech dispatcher
subprocess.call(['spd-say', '"your process has finished"'])
Run Code Online (Sandbox Code Playgroud)
为什么要使用python?您可能忘记删除它并将其签入存储库。只需使用 && 和另一个命令运行你的 python 命令来运行警报。
python myscript.py &&
notify-send 'Alert' 'Your task is complete' &&
paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
Run Code Online (Sandbox Code Playgroud)
或将函数放入您的 .bashrc。我在这里使用 apython 但你可以覆盖 'python'
function apython() {
/usr/bin/python $*
notify-send 'Alert' "python $* is complete"
paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
}
Run Code Online (Sandbox Code Playgroud)
在OS X Yosemite(10.10.1)上,Kuchi的回答对我没有用.我确实找到了afplay命令(这里),你可以从Python调用它.无论终端音响铃是否启用且没有第三方库,这都有效.
import os
os.system('afplay /System/Library/Sounds/Sosumi.aiff')
Run Code Online (Sandbox Code Playgroud)
我假设您想要标准的系统铃声,并且不想关心频率和持续时间等,您只想要标准的Windows铃声。
import winsound
winsound.MessageBeep()
Run Code Online (Sandbox Code Playgroud)
请参阅:Python Sound("Bell")
当我想要做同样的事情时,这帮助了我.
所有学分都转到gbc
你有没有尝试过 :
import sys
sys.stdout.write('\a')
sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)
这适用于我在Mac OS 10.5上
实际上,我认为您的原始尝试也可以进行一些修改:
print('\a')
Run Code Online (Sandbox Code Playgroud)
(你只需要围绕字符序列的单引号).
可以通过以下代码来完成:
import time
time.sleep(10) #Set the time
for x in range(60):
time.sleep(1)
print('\a')
Run Code Online (Sandbox Code Playgroud)