Звуковой сигнал, когда код заканчивается
Я нахожусь в ситуации, когда мой код занимает очень много времени, и я не хочу смотреть на него все время, но хочу знать, когда это будет сделано.
Как я могу сделать (Python) код вроде звука "тревога", когда это делается? Я подумывал о том ,чтобы заставить его играть.wav файл, когда он достигает конца кода...
Это вообще осуществимая идея? Если да, то как я могу это сделать?
10 ответов:
На Windows
import winsound duration = 1000 # millisecond freq = 440 # Hz winsound.Beep(freq, duration)
где freq-частота В Гц, а длительность-в миллисекундах.
на 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
этот, кажется, работает как на 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 черный список.conf'
- прокомментируйте строку, которая говорит "черный список pcspkr" , а затем перезагрузите
- проверьте также, что настройки терминала есть ли "терминал колокол" проверено.
ubuntu speech dispatcher может быть использован:
import subprocess subprocess.call(['speech-dispatcher']) #start speech dispatcher subprocess.call(['spd-say', '"your process has finished"'])
ответ кучи не работал для меня на OS X Yosemite (10.10.1). Я нашел команда, которая работает, который вы можете просто позвонить из питона. Это работает независимо от того, включен ли звуковой сигнал терминала и без сторонней библиотеки.
os.system('afplay /System/Library/Sounds/Sosumi.aiff')
посмотреть: Звук Питона ("Колокол")
Это помогло мне, когда я хотел сделать то же самое.
Все кредиты идут на 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')
зачем вообще использовать 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 }