Je suis dans une situation où mon code prend énormément de temps à exécuter et je ne veux pas le regarder tout le temps, mais je veux savoir quand il sera terminé.
Comment puis-je faire en sorte que le code (Python) sonne comme une "alarme" quand c'est fait? J'envisageais de lui faire jouer un fichier .wav quand il atteindrait la fin du code ...
Est-ce même une idée réalisable? Si oui, comment pourrais-je le faire?
import winsound
duration = 1000 # milliseconds
freq = 440 # Hz
winsound.Beep(freq, duration)
Où fréq est la fréquence en Hz et la durée est en millisecondes.
import os
duration = 1 # seconds
freq = 440 # Hz
os.system('play -nq -t alsa synth {} sine {}'.format(duration, freq))
Pour utiliser cet exemple, vous devez installer sox
.
Sur Debian/Ubuntu/Linux Mint, exécutez ceci sur votre terminal:
Sudo apt install sox
Sur Mac, lancez ceci dans votre terminal (en utilisant macports):
Sudo port install sox
import os
os.system('say "your program has finished"')
import os
os.system('spd-say "your program has finished"')
Vous devez installer le speech-dispatcher
paquet dans Ubuntu (ou le paquet correspondant sur d’autres distributions):
Sudo apt install speech-dispatcher
print('\007')
joue le son de la cloche
Celui-ci semble fonctionner sous Windows et Linux * ( de cette question ):
def beep():
print "\a"
beep()
Dans Windows, peut mettre à la fin:
import winsound
winsound.Beep(500,1000)
where 500 is the frequency in Herz
1000 is the duration in miliseconds
*: pour fonctionner sous Linux, vous devrez peut-être effectuer les opérations suivantes (à partir du commentaire de QO):
le répartiteur de parole Ubuntu peut être utilisé:
import subprocess
subprocess.call(['speech-dispatcher']) #start speech dispatcher
subprocess.call(['spd-say', '"your process has finished"'])
La réponse de Kuchi n'a pas fonctionné pour moi sous OS X Yosemite (10.10.1). J'ai trouvé la commande afplay
( ici ), que vous pouvez simplement appeler depuis Python. Cela fonctionne que la cloche audible du terminal soit activée ou non et sans une bibliothèque tierce.
import os
os.system('afplay /System/Library/Sounds/Sosumi.aiff')
Je suppose que vous voulez la sonnerie standard du système et que vous ne voulez pas vous préoccuper des fréquences, des durées, etc., vous voulez simplement la sonnerie standard des fenêtres.
import winsound
winsound.MessageBeep()
Voir: Son Python ("Bell")
Cela m'a aidé quand je voulais faire la même chose.
Tous les crédits vont à gbc
As-tu essayé :
import sys
sys.stdout.write('\a')
sys.stdout.flush()
Cela fonctionne pour moi ici sur Mac OS 10.5
En fait, je pense que votre tentative initiale fonctionne aussi avec une petite modification:
print('\a')
(Vous avez juste besoin de guillemets simples autour de la séquence de caractères).
Cela peut être fait par code comme suit:
import time
time.sleep(10) #Set the time
for x in range(60):
time.sleep(1)
print('\a')
Pourquoi utiliser python du tout? Vous pourriez oublier de le supprimer et de l’archiver dans un référentiel. Il suffit d’exécuter votre commande python avec && et une autre commande à exécuter faire l'alerte.
python myscript.py &&
notify-send 'Alert' 'Your task is complete' &&
paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
ou déposez une fonction dans votre .bashrc. J'utilise apython ici, mais vous pouvez remplacer 'python'
function apython() {
/usr/bin/python $*
notify-send 'Alert' "python $* is complete"
paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
}
import subprocess
subprocess.call(['D:\greensoft\TTPlayer\TTPlayer.exe', "E:\stridevampaclip.mp3"])