Python:代码完成时声音报警
我处于这样一种情况,即我的代码需要很长的时间才能运行,我不想一直盯着它,而是想知道什么时候完成。
我怎样才能使(Python)的代码types的声音“报警”,当它完成? 我正在考虑让它播放一个.wav文件,当它到达代码的结尾…
这是一个可行的想法吗? 如果是这样,我该怎么办呢?
在Windows上
import winsound duration = 1000 # millisecond freq = 440 # Hz winsound.Beep(freq, duration)
freq是以Hz为单位的频率,持续时间以毫秒为单位。
在Linux(和Mac)上
import os duration = 1 # second freq = 440 # Hz os.system('play --no-show-progress --null --channels 1 synth %s sine %f' % (duration, freq))
为了使用这个例子,你必须安装sox
。
在Debian / Ubuntu / LinuxMint你需要在你的terminal上运行:
sudo apt install sox
这是macports的做法…运行这是你的terminal:
sudo port install sox
在Mac上演讲
如果你在terminal中使用一个mac,这个东西真的很酷,也许可以在windows中做同样的事情,但是我只知道mac,这会告诉你已经完成了:
import os os.system('say "your program has finished"')
在Linux上演讲
import os os.system('spd-say "your program has finished"')
您需要在Ubuntu(或其他发行版上的相应软件包)中安装speech-dispatcher
软件包:
sudo apt install speech-dispatcher
这一个似乎在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的评论):
- 在terminal中input'cd /etc/modprobe.d'然后'gksudo gedit blacklist.conf'
- 注释“黑名单pcspkr”的行,然后重新启动
- 还要检查terminal首选项是否有“terminal铃”检查。
ubuntu语音调度程序可以使用:
import subprocess subprocess.call(['speech-dispatcher']) #start speech dispatcher subprocess.call(['spd-say', '"your process has finished"'])
print('\007')
打钟声
Kuchi的答案在OS X Yosemite(10.10.1)上不适用于我。 我find了一个可行的命令,你可以从Python调用。 无论是否启用了terminal声音提示,并且没有第三方库,这都是有效的。
os.system('afplay /System/Library/Sounds/Sosumi.aiff')
请参阅: Python声音(“Bell”)
当我想要做同样的事情时,这帮助了我。
所有学分去gbc
引用:
你有没有尝试过 :
import sys sys.stdout.write('\a') sys.stdout.flush()
这在Mac OS 10.5上适用于我
其实,我认为你原来的尝试也有一些修改:
print('\a')
(你只需要在字符序列周围单引号)。
它可以通过代码完成如下:
import time time.sleep(10) #Set the time for x in range(60): time.sleep(1) print('\a')
import subprocess subprocess.call(['D:\greensoft\TTPlayer\TTPlayer.exe', "E:\stridevampaclip.mp3"])
为什么使用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 }
我假设你想要标准系统的钟声,而不想关心频率和持续时间等等,你只需要标准的窗口钟。
import winsound winsound.MessageBeep()