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()