J'essaie de faire en sorte que le programme me donne un bip sonore. Je suis sur une machine Windows. J'ai regardé http://docs.python.org/library/winsound.html
Mais je ne sais pas comment je peux programmer ceci avec un scanner de codes à barres.
Voici mon code pour le scanner de codes à barres en série.
ser = serial.Serial()
ser.baudrate = 9600
#for windows
ser.port = 2 #for COM3
ser.open()
ser.write('hello')
ser.close()
MISE À JOUR: Depuis que je gêne mes collègues de travail avec le bip. Puis-je le faire passer par la prise audio pour casque?
Sous Windows, si vous souhaitez simplement que l'ordinateur émette un bip:
import winsound
frequency = 2500 # Set Frequency To 2500 Hertz
duration = 1000 # Set Duration To 1000 ms == 1 second
winsound.Beep(frequency, duration)
La winsound.Beep()
peut être utilisée partout où vous voulez que le bip se produise.
La façon multi-plateforme de faire ceci est de print '\a'
. Cela enverra le caractère ASCII) à la sortie standard et produira éventuellement un bip (alerte). Notez que de nombreux émulateurs de terminaux modernes offrent la possibilité d’ignorer les caractères d’alarme.
Puisque vous êtes sur Windows, vous serez heureux d’entendre que Windows a sa propre API Beep , qui vous permet d’envoyer des bips. de longueur et de hauteur arbitraires. Notez que ceci est une solution uniquement Windows, vous devriez donc probablement préférer print '\a'
sauf si vous vous souciez vraiment de Hertz et des millisecondes.
L’API Beep est accessible via le module winsound : http://docs.python.org/library/winsound.html
Linux.
$ apt-get install beep
$ python
>>> os.system("beep -f 555 -l 460")
OR
$ beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 880 -l 230 -n -f 659 -l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 1047-l 230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l 230 -n -f 659 -l 110 -n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460
Je cherchais le même mais pour Linux Shell.
Le sujet m'a amené à une réponse, -Merci-
Peut-être plus de manière pythonique:
import os
beep = lambda x: os.system("echo -n '\a';sleep 0.2;" * x)
beep(3)
Remarques :
os.system
plutôt que subprocess.Popen
pour la simplicité (ça pourrait être mauvais)echo
n'aura plus d'affichagesleep
est nécessaire pour la séquence de texte résultante (* x)Il y a une réponse Windows et une réponse Debian, alors voici un Mac :
Cela suppose que vous êtes simplement ici à la recherche d'un moyen rapide d'émettre un son d'alerte personnalisable, et pas spécifiquement le bip piézoélectrique que vous obtenez sous Windows:
os.system( "say beep" )
Avertissement: Vous pouvez remplacer os.system
avec un appel au module subprocess
si vous craignez que quelqu'un modifie votre code sonore.
La voie multi-plateforme:
import time
import sys
for i in range(1,6):
sys.stdout.write('\r\a{i}'.format(i=i))
sys.stdout.flush()
time.sleep(1)
sys.stdout.write('\n')