J'essaie de faire en sorte que le programme me donne un bip. 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 cela avec un lecteur de codes-barres.
Voici mon code pour le lecteur de codes à barres 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 j'ennuie mes collègues avec le bip. Puis-je le faire passer par la prise audio pour casque?
python
audio
serial-port
Marc Brigham
la source
la source
Réponses:
Sous Windows, si vous voulez simplement que l'ordinateur émette un bip:
Le
winsound.Beep()
peut être utilisé partout où vous souhaitez que le bip se produise.la source
def annoy(): for i in range(1, 10): winsound.Beep(i * 100, 200)
def sos(): for i in range(0, 3): winsound.Beep(2000, 100) for i in range(0, 3): winsound.Beep(2000, 400) for i in range(0, 3): winsound.Beep(2000, 100)
. Je devrais probablement retourner au travail maintenant: DLa manière multiplateforme de le faire est de
print('\a')
. Cela enverra le caractère ASCII Bell à stdout, et, espérons-le, générera un bip (un pour «alerte»). Notez que de nombreux émulateurs de terminaux modernes offrent la possibilité d'ignorer les caractères de cloche.Puisque vous êtes sous Windows, vous serez heureux d'apprendre que Windows a sa propre API Beep (accrochez-vous) , qui vous permet d'envoyer des bips de longueur et de hauteur arbitraires. Notez qu'il s'agit d'une solution Windows uniquement, vous devriez donc probablement préférer à
print('\a')
moins que vous ne vous souciez vraiment de Hertz et des millisecondes.L'API Beep est accessible via le module winsound : http://docs.python.org/library/winsound.html
la source
Linux.
OU
la source
os.system
c'est bien, surtout avec une valeur codée en dur, tout le monde n'écrit pas un serveur Web.-f 1047-l
, devrait être-f 1047 -l
, espace manquantJe cherchais le même mais pour le shell Linux.
Le sujet m'a amené à une réponse, -merci-
Peut-être de manière plus pythonique:
Remarques :
os.system
plutôt quesubprocess.Popen
par simplicité (ça pourrait être mauvais)echo
est de ne plus avoir d'affichagesleep
est nécessaire pour la séquence de texte résultante (* x)la source
echo
(print
) etsleep
, donc il n'est en fait pas pythonique de passer par des appels externes, en particulier lorsqu'il s'agit d'appels Unix (non portables).Il y a une réponse Windows et une réponse Debian, alors voici une réponse Mac :
Cela suppose que vous cherchiez ici un moyen rapide de créer un son d'alerte personnalisable, et pas spécifiquement le bip piézoélectrique que vous obtenez sous Windows:
Avertissement: Vous pouvez remplacer
os.system
par un appel ausubprocess
module si vous craignez que quelqu'un pirate votre code sonore.Voir: Comment faire retentir le bip matériel sous Mac OS X 10.6
la source
La manière multiplateforme:
la source
sys.stdout.write('\a')
J'ai fait un paquet à cet effet.
Vous pouvez l'utiliser comme ceci:
Cela dépend de sox et ne prend en charge que python3.
la source
Utilisation
pygame
sur n'importe quelle plateformeL'avantage de l'utilisation
pygame
est qu'il peut être fait pour fonctionner sur n'importe quelle plate-forme OS. L'exemple de code ci-dessous est cependant pour GNU / Linux .Installez d'abord le
pygame
modulepython3
comme expliqué en détail ici .Le
pygame
module peut lire.wav
et.ogg
fichiers à partir de n'importe quel emplacement de fichier. Voici un exemple:la source
Sous Linux:
print('\007')
fera sonner la cloche du système.la source