Звуковой сигнал, когда код заканчивается


Я нахожусь в ситуации, когда мой код занимает очень много времени, и я не хочу смотреть на него все время, но хочу знать, когда это будет сделано.

Как я могу сделать (Python) код вроде звука "тревога", когда это делается? Я подумывал о том ,чтобы заставить его играть.wav файл, когда он достигает конца кода...

Это вообще осуществимая идея? Если да, то как я могу это сделать?

10 81

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" , а затем перезагрузите
  • проверьте также, что настройки терминала есть ли "терминал колокол" проверено.
 print('7')

воспроизведение звука

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')
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
}

Я предполагаю, что вы хотите стандартный системный звонок, и не хотите беспокоиться о частотах и длительности и т. д., вы просто хотите стандартный звонок windows.

import winsound
winsound.MessageBeep()