206 votes

Alarme sonore à la fin du code

Je suis dans une situation où mon code prend énormément de temps à s'exécuter et je ne veux pas le regarder en permanence mais je veux savoir quand il est terminé.

Comment puis-je faire en sorte que le code (Python) émette une sorte d'"alarme" lorsqu'il est terminé ? J'ai envisagé de lui faire jouer un fichier .wav lorsqu'il atteint la fin du code...

Est-ce même une idée réalisable ? Si oui, comment pourrais-je la réaliser ?

12voto

zekel Points 2300

La réponse de Kuchi n'a pas fonctionné pour moi sur OS X Yosemite (10.10.1). J'ai trouvé le afplay ( aquí ), que vous pouvez simplement appeler depuis Python. Cela fonctionne indépendamment de l'activation ou non de la sonnerie du terminal et sans bibliothèque tierce.

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

9voto

rtaft Points 28

Pourquoi utiliser python ? Vous pourriez oublier de le supprimer et de l'enregistrer dans un dépôt. Exécutez simplement votre commande python avec && et une autre commande à exécuter pour 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
}

6voto

Kuchi Points 451

Voir : Son du python ("cloche")
Cela m'a aidé quand j'ai voulu faire la même chose.
Tous les crédits vont à gbc

Citation :

Avez-vous essayé :

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

Cela fonctionne pour moi sur Mac OS 10.5.

En fait, je pense que votre tentative originale fonctionne aussi avec une petite modification :

print('\a')

(Vous avez juste besoin des guillemets simples autour de la séquence de caractères).

4voto

Satyendra Yadav Points 124

Cela peut être fait par le code suivant :

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

3voto

Vishesh Mangla Points 560

Un peu plus à votre question.

J'ai utilisé gTTS pour générer de l'audio à partir d'un texte, puis lire cet audio à l'aide de l'application Playsound quand j'apprenais le webscraping et que j'ai créé un téléchargeur de coursera (uniquement des cours gratuits).

text2speech = gTTS("Your course " + course_name +
                                " is downloaded to " + downloads + ". Check it fast.")
text2speech.save("temp.mp3")
winsound.Beep(2500, 1000)
playsound("temp.mp3")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X