python - Sonar la alarma cuando termina el código
audio (10)
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"'')
Necesita instalar el paquete speech-dispatcher
en Ubuntu (o el paquete correspondiente en otras distribuciones):
sudo apt install speech-dispatcher
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?
¿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
}
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"''])
Este parece funcionar tanto en Windows como en Linux * (a partir 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''.
La respuesta de Kuchi no funcionó para mí en OS X Yosemite (10.10.1). Encontré un comando que funciona , al 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'')
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'')
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()
Ver: Python Sound ("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).
print(''/007'')
toca el sonido de la campana
import subprocess
subprocess.call([''D:/greensoft/TTPlayer/TTPlayer.exe'', "E:/stridevampaclip.mp3"])