Я нахожусь в ситуации, когда мой код запускается очень долго, и я не хочу смотреть на него все время, но хочу знать, когда он будет выполнен.
Как я могу сделать так, чтобы код (Python) издавал «сигнал тревоги», когда это сделано? Я собирался заставить его воспроизводить файл .wav, когда он достигнет конца кода ...
Это вообще осуществимая идея? Если да, то как я мог это сделать?
Ответы:
В Windows
import winsound duration = 1000 # milliseconds freq = 440 # Hz winsound.Beep(freq, duration)
Где freq - частота в Гц, а продолжительность - в миллисекундах.
В 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 запустите это в своем терминале:
На Mac запустите это в своем терминале (используя macports):
Речь на Mac
import os os.system('say "your program has finished"')
Выступление по Linux
import os os.system('spd-say "your program has finished"')
Вам необходимо установить
speech-dispatcher
пакет в Ubuntu (или соответствующий пакет в других дистрибутивах):источник
print('\007')
играет звук колокола
источник
Кажется, это работает как в 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):
источник
Диспетчер речи ubuntu может использоваться:
import subprocess subprocess.call(['speech-dispatcher']) #start speech dispatcher subprocess.call(['spd-say', '"your process has finished"'])
источник
-w
аргумент, чтобы дождаться, пока spd-say закончит фразуОтвет Кучи не сработал для меня в OS X Yosemite (10.10.1). Я нашел
afplay
команду ( здесь ), которую вы можете просто вызвать из Python. Это работает независимо от того, включен ли звуковой сигнал терминала и без сторонней библиотеки.import os os.system('afplay /System/Library/Sounds/Sosumi.aiff')
источник
Я предполагаю, что вам нужен стандартный системный звонок и вы не хотите беспокоиться о частотах, длительности и т. Д., Вам просто нужен стандартный звонок Windows.
import winsound winsound.MessageBeep()
источник
См .: Python Sound ("Bell")
Это помогло мне, когда я хотел сделать то же самое.
Все кредиты переходят на gbc
Цитата:
Попытался ли ты :
import sys sys.stdout.write('\a') sys.stdout.flush()
Это работает для меня здесь, в Mac OS 10.5
На самом деле, я думаю, что ваша первоначальная попытка также работает с небольшой модификацией:
print('\a')
(Вам просто нужны одинарные кавычки вокруг последовательности символов).
источник
Зачем вообще использовать 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 }
источник
os.system("paplay sound-alarm.oga")
Это можно сделать с помощью кода следующим образом:
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"])
источник
Еще немного о вашем вопросе.
Я использовал пакет gTTS для создания звука из текста, а затем воспроизвел этот звук с помощью 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")
источник