Pregunta Sonar la alarma cuando termina el código


Estoy en una situación en la que mi código demora mucho en ejecutarse y no quiero estar mirando todo el tiempo, pero quiero saber cuándo está listo.

¿Cómo puedo hacer que el tipo de código (Python) suene como una "alarma" cuando está listo? Estaba contemplando hacer que reproduzca un archivo .wav cuando llega al final del código ...

¿Es esto incluso una idea factible? Si es así, ¿cómo podría hacerlo?


75
2018-05-15 19:04


origen


Respuestas:


En Windows

import winsound
duration = 1000  # millisecond
freq = 440  # Hz
winsound.Beep(freq, duration)

Donde freq es la frecuencia en Hz y la duración es en milisegundos.

En Linux (y Mac)

import os
duration = 1  # second
freq = 440  # Hz
os.system('play --no-show-progress --null --channels 1 synth %s sine %f' % (duration, freq))

Para usar este ejemplo, debe instalar sox.

En Debian / Ubuntu / LinuxMint debe ejecutar en su terminal:

sudo apt install sox

Aquí está la manera macports de hacer eso ... ejecuta esta es tu terminal:

sudo port install sox

Habla en Mac

Y algo realmente genial si estás usando un mac en terminal, tal vez puedas hacer lo mismo en Windows, pero solo estoy seguro para mac, esto te dirá que ya está hecho:

import os
os.system('say "your program has finished"')

Habla en Linux

import os
os.system('spd-say "your program has finished"')

Necesitas instalar el speech-dispatcher paquete en Ubuntu (o el paquete correspondiente en otras distribuciones):

sudo apt install speech-dispatcher

125
2018-05-15 19:23



Parece que funciona tanto en Windows como en Linux * (de esta pregunta)

def beep():
    print "\a"
beep()

En Windows, puede poner al final:

import winsound
winsound.Beep(500,1000)

where 500 is the frequency in Herz
      1000 is the duration in miliseconds

*: para trabajar en Linux, es posible que deba hacer lo siguiente (según el comentario de QO):

  • en un terminal, escriba 'cd /etc/modprobe.d' y luego 'gksudo gedit blacklist.conf'
  • Comente la línea que dice 'blacklist pcspkr', luego reinicie
  • también verifique que las preferencias de terminal tengan marcada la 'Terminal Bell'.

21
2018-05-15 19:13



 print('\007')

toca el sonido de la campana


20
2018-05-13 16:32



El despachador de voz de Ubuntu se puede usar:

import subprocess
subprocess.call(['speech-dispatcher'])        #start speech dispatcher
subprocess.call(['spd-say', '"your process has finished"'])

15
2018-04-12 14:42



La respuesta de Kuchi no funcionó para mí en OS X Yosemite (10.10.1). Encontré un comando que funciona, que puedes llamar desde Python. Esto funciona independientemente de si la campana audible de la Terminal está habilitada y sin una biblioteca de terceros.

os.system('afplay /System/Library/Sounds/Sosumi.aiff')

6
2018-02-20 18:05



Ver: Sonido de Python ("Bell")
Esto me ayudó cuando quería hacer lo mismo.
Todos los créditos van a gbc

Citar:

Has probado :

import sys
sys.stdout.write('\a')
sys.stdout.flush()

Eso funciona para mí aquí en Mac OS 10.5

En realidad, creo que tu intento original también funciona con una pequeña modificación:

print('\a')

(Solo necesita las comillas simples alrededor de la secuencia de caracteres).


5
2018-05-15 19:17



Se puede hacer por código de la siguiente manera:

import time
time.sleep(10)   #Set the time
for x in range(60):  
    time.sleep(1)
    print('\a')

4
2018-06-30 20:02



import subprocess

subprocess.call(['D:\greensoft\TTPlayer\TTPlayer.exe', "E:\stridevampaclip.mp3"])

2
2018-05-02 12:36



¿Por qué usar Python en absoluto? Puede olvidarse de eliminarlo y verificarlo en un repositorio. Simplemente ejecute su comando python con && y otro comando para ejecutar para hacer las alertas.

python myscript.py && 
    notify-send 'Alert' 'Your task is complete' && 
    paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga

o suelta una función en tu .bashrc. Yo uso apython aquí pero puedes anular 'python'

function apython() {
    /usr/bin/python $*
    notify-send 'Alert' "python $* is complete"
    paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
}

2
2017-09-28 16:53



Supongo que quiere el timbre estándar del sistema, y ​​no quiere preocuparse por las frecuencias y duraciones, etc., solo quiere el timbre estándar de Windows.

import winsound
winsound.MessageBeep()

1
2018-04-04 21:42