我的代码需要很长时间才能运行,我不想一直盯着它,但想知道它什么时候完成。
我怎样才能使(Python)代码在完成时发出“警报”?我正在考虑让它在代码结束时播放一个.wav文件……
这个似乎在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的评论):
你有没有试过:
import sys sys.stdout.write('\a') sys.stdout.flush()
这在Mac OS 10.5上也适用
实际上,我认为你最初的尝试也可以,只要稍加修改:
print('\a')
(您只需要在字符序列周围加上单引号)。
import winsound duration = 1000 # milliseconds freq = 440 # Hz winsound.Beep(freq, duration)
其中,freq是以赫兹为单位的频率,持续时间以毫秒为单位。
import os duration = 1 # seconds freq = 440 # Hz os.system('play -nq -t alsa synth {} sine {}'.format(duration, freq))
为了使用这个例子,你必须安装sox。
sox
在Debian / Ubuntu / Linux Mint上,在你的终端上运行这个:
sudo apt install sox
在Mac上,在你的终端上运行这个(使用macports):
sudo port install sox
import os os.system('say "your program has finished"')
import os os.system('spd-say "your program has finished"')
你需要在Ubuntu中安装speech-dispatcher包(或其他发行版上的相应包):
speech-dispatcher
sudo apt install speech-dispatcher
奇的回答不能为我的OS X Yosemite(10.10.1)。我确实找到了afplay命令(在这里),你可以从Python调用它。无论终端可听铃声是否启用,并且没有第三方库,都可以正常工作。
afplay
import os os.system('afplay /System/Library/Sounds/Sosumi.aiff')
Ubuntu语音调度器可以使用:
import subprocess subprocess.call(['speech-dispatcher']) #start speech dispatcher subprocess.call(['spd-say', '"your process has finished"'])
print('\007')
Linux下播放铃声。播放错误提示音。
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中。这里我用的是python但是你可以重写" 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()
它可以通过如下代码来完成:
import time time.sleep(10) #Set the time for x in range(60): time.sleep(1) print('\a')
关于你的问题。
我使用腹围包从文本生成音频,然后使用Playsound播放音频,当我学习网络抓取并创建了一个coursera下载器(仅免费课程)。
text2speech = gTTS("Your course " + course_name + " is downloaded to " + downloads + ". Check it fast.") text2speech.save("temp.mp3") winsound.Beep(2500, 1000) playsound("temp.mp3")
我创建了一个python模块,在代码执行后提醒Telegram应用程序上的开发人员。这可能比发出警报声音更有帮助。
例子:
In [1]>> from devreminder import DevReminder import time In [2]>> remind = DevReminder(1932126911,False,0) In [3]>> remind.me("Example") time.sleep(6)
输出:
.
请按照README文件了解更多信息。
在macOS上有一个非常简单的方法来做到这一点。
python file.py && say done