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 ?

336voto

Ryan Saxe Points 2664

Sur Windows

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

Où freq est la fréquence en Hz et la durée est en millisecondes.

Sur Linux et Mac

import os
duration = 1  # seconds
freq = 440  # Hz
os.system('play -nq -t alsa synth {} sine {}'.format(duration, freq))

Afin d'utiliser cet exemple, vous devez installer sox .

Sur Debian / Ubuntu / Linux Mint, exécutez ceci dans votre terminal :

sudo apt install sox

Sur Mac, exécutez ceci dans votre terminal (en utilisant macports) :

sudo port install sox

Discours sur Mac

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

Discours sur Linux

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

Vous devez installer le speech-dispatcher dans Ubuntu (ou le paquet correspondant dans les autres distributions) :

sudo apt install speech-dispatcher

42voto

Josh Allemon Points 786
print('\007')

Joue le son de la cloche sous Linux. Joue le son d'erreur sur Windows 10 .

38voto

Saullo Castro Points 12260

Celui-ci semble fonctionner à la fois sur Windows et sur Linux* ( de cette question ) :

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

beep()

Dans Windows, on 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 faire ce qui suit (d'après le commentaire de QO) :

  • dans un terminal, tapez 'cd /etc/modprobe.d' puis 'gksudo gedit blacklist.conf'.
  • Commentez la ligne qui dit 'blacklist pcspkr', puis redémarrez.
  • Vérifiez également que l'option "cloche de terminal" est cochée dans les préférences du terminal.

19voto

poulter7 Points 354

Je suppose que vous voulez la sonnerie standard du système, et que vous ne voulez pas vous préoccuper des fréquences et des durées, etc., vous voulez simplement la sonnerie standard de Windows.

import winsound
winsound.MessageBeep()

17voto

Ishan Khare Points 679

Ubuntu speech dispatcher peut être utilisé :

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

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