Alarme sonore à la fin du code

je suis dans une situation où mon code prend beaucoup de temps à courir et je ne veux pas être à regarder tout le temps, mais souhaitez savoir quand c'est fait.

Comment puis-je faire sonner le code (Python) comme une "alarme" quand c'est fait? J'ai envisagé de faire jouer une .fichier wav lorsqu'il atteint la fin du code...

est-ce une idée réalisable? Si oui, comment pourrais-je le faire?

81
demandé sur martineau 2013-05-15 23:04:57

10 réponses

Sous Windows

import winsound
duration = 1000  # millisecond
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  # second
freq = 440  # Hz
os.system('play --no-show-progress --null --channels 1 synth %s sine %f' % (duration, freq))

pour utiliser cet exemple, vous devez installer sox .

sur Debian / Ubuntu/LinuxMint vous devez exécuter dans votre terminal:

sudo apt install sox

Voici la façon macports de faire cela...exécutez ceci est votre terminal:

sudo port install sox

discours sur Mac

et quelque chose de vraiment cool si vous utilisez un mac dans le terminal, peut-être peut faire la même chose dans windows, mais je ne sais que pour mac, cela vous dira que c'est fait:

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 paquet speech-dispatcher dans Ubuntu (ou le paquet correspondant sur d'autres distributions):

sudo apt install speech-dispatcher
135
répondu Ryan Saxe 2017-08-28 09:24:00

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

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

dans les fenêtres, peut mettre à la fin:

import winsound
winsound.Beep(500,1000)

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

*: pour travailler sur Linux, vous pouvez avoir besoin de faire ce qui suit (du commentaire de QO):

  • dans un terminal, tapez 'cd /etc/modprobe.d' alors 'gksudo gedit liste noire.conf '
  • commentaire la ligne qui dit "blacklist pcspkr', puis redémarrer
  • vérifier également que les préférences de terminal a la 'cloche de Terminal' cochée.
21
répondu Saullo G. P. Castro 2017-05-23 12:10:29
 print('"151900920"7')

joue le son de la cloche

20
répondu Josh Allemon 2015-05-13 16:32:36

ubuntu speech dispatcher peut être utilisé:

import subprocess
subprocess.call(['speech-dispatcher'])        #start speech dispatcher
subprocess.call(['spd-say', '"your process has finished"'])
15
répondu Ishan Khare 2015-04-12 14:42:46

la réponse de Kuchi n'a pas fonctionné pour moi sur OS X Yosemite (10.10.1). J'ai trouvé une commande qui fonctionne , que vous pouvez simplement appeler depuis Python. Cela fonctionne indépendamment du fait que le Terminal sonore bell est activé ou non et sans bibliothèque tierce partie.

os.system('afplay /System/Library/Sounds/Sosumi.aiff')
6
répondu zekel 2017-03-20 10:18:16

Voir: Son Python ("Bell")

Cela m'a aidé quand je voulais faire la même chose.

Tous les crédits vont à gbc

citation:

avez-vous essayé:

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

qui fonctionne pour moi ici 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).

5
répondu Kuchi 2017-05-23 12:34:37

il 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')
4
répondu Satyendra Yadav 2017-06-30 20:02:05
import subprocess

subprocess.call(['D:\greensoft\TTPlayer\TTPlayer.exe', "E:\stridevampaclip.mp3"])
2
répondu Du Peng 2016-05-02 12:36:26

Pourquoi utiliser python? Vous risquez d'oublier de l'enlever et de le vérifier dans un référentiel. Il suffit d'exécuter votre commande python avec && et une autre commande pour exécuter 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
}
2
répondu rtaft 2016-09-28 17:03:55

je suppose que vous voulez la cloche du système standard, et que vous ne voulez pas vous préoccuper des fréquences et des durées, etc. tu veux juste la cloche standard de windows.

import winsound
winsound.MessageBeep()
1
répondu poulter7 2017-04-04 21:42:22