Python: звуковой сигнал при завершении кода
Я в ситуации, когда мой код занимает очень много времени, и я не хочу смотреть на него все время, но хочу знать, когда это будет сделано.
Как я могу сделать код (Python) вроде звука "сигналом тревоги", когда это будет сделано? Я думал о том, чтобы заставить его играть в WAV файл, когда он достигнет конца кода...
Это даже реальная идея?
Если да, как я могу это сделать?
Ответы
Ответ 1
В Windows
import winsound
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
Где частота - это частота в Гц, а длительность - в миллисекундах.
В 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 вам нужно запустить в своем терминале:
sudo apt install sox
Вот способ macports сделать это... запустите это ваш терминал:
sudo port install sox
Речь на Mac
И что-то действительно здорово, если вы используете Mac в терминале, возможно, можете сделать то же самое в Windows, но я точно знаю только для mac, это скажет вам, что это сделано:
import os
os.system('say "your program has finished"')
Речь о Linux
import os
os.system('spd-say "your program has finished"')
Вам нужно установить пакет speech-dispatcher
в Ubuntu (или соответствующий пакет в других дистрибутивах):
sudo apt install speech-dispatcher
Ответ 2
Этот, похоже, работает как с 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):
- в терминале введите 'cd/etc/modprobe.d', затем 'gksudo gedit blacklist.conf'
- прокомментируйте строку с надписью "blacklist pcspkr", затем перезагрузите
- проверьте также, что настройки терминала имеют флажок "Terminal Bell".
Ответ 3
Можно использовать речевой диспетчер ubuntu:
import subprocess
subprocess.call(['speech-dispatcher']) #start speech dispatcher
subprocess.call(['spd-say', '"your process has finished"'])
Ответ 4
print('\007')
воспроизводит звук звонка
Ответ 5
Ответ Кучи не работал у меня на OS X Yosemite (10.10.1). Я нашел команду, которая работает, которую вы можете просто вызвать из Python. Это работает независимо от того, включен ли звуковой звонок терминала и без сторонней библиотеки.
os.system('afplay /System/Library/Sounds/Sosumi.aiff')
Ответ 6
Смотрите: Python Sound ( "Bell" )
Это помогло мне, когда я хотел сделать то же самое.
Все кредиты идут на gbc
Цитата:
Вы пробовали:
import sys
sys.stdout.write('\a')
sys.stdout.flush()
Это работает для меня здесь, в Mac OS 10.5
Собственно, я думаю, что твоя оригинальная попытка работает и с небольшой модификацией:
print('\a')
(Вам просто нужны одиночные кавычки вокруг последовательности символов).
Ответ 7
Это можно сделать с помощью кода следующим образом:
import time
time.sleep(10) #Set the time
for x in range(60):
time.sleep(1)
print('\a')
Ответ 8
import subprocess
subprocess.call(['D:\greensoft\TTPlayer\TTPlayer.exe', "E:\stridevampaclip.mp3"])
Ответ 9
Зачем использовать 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
}
Ответ 10
Я предполагаю, что вам нужен стандартный системный звонок, и вы не хотите беспокоиться о частотах и продолжительности и т.д., вам просто нужен стандартный звонок в окно.
import winsound
winsound.MessageBeep()