Python: издает звуковой сигнал
Я пытаюсь заставить программу дать мне звуковой сигнал. Я нахожусь на машине windows. Я посмотрел на http://docs.python.org/library/winsound.html
но не уверен, как я могу запрограммировать это с помощью сканера штрих-кодов.
вот мой код для серийного сканера штрих-кодов.
ser = serial.Serial()
ser.baudrate = 9600
#for windows
ser.port = 2 #for COM3
ser.open()
ser.write('hello')
ser.close()
UPDATE: так как я раздражаю своих сотрудников звуковым сигналом. Могу ли я получить его через аудиоразъем для наушников?
6 ответов:
на Windows, Если вы хотите просто сделать компьютер сделать звуковой сигнал:
import winsound frequency = 2500 # Set Frequency To 2500 Hertz duration = 1000 # Set Duration To 1000 ms == 1 second winsound.Beep(frequency, duration)The
winsound.Beep()может использоваться везде, где вы хотите, чтобы звуковой сигнал произошел.
кросс-платформенный способ сделать это
print '\a'. Это отправит символ ASCII Bell в stdout и, надеюсь, создаст звуковой сигнал (a для "alert"). Обратите внимание, что многие современные эмуляторы терминалов предоставляют возможность игнорировать символы колокола.Так как вы находитесь на Windows, вы будете рады услышать, что Windows имеет свой собственный (приготовьтесь) Beep API, которая позволяет передавать сигналы произвольной длины и высоты. Обратите внимание, что это только для Windows, поэтому вы наверное, стоит предпочесть
print '\a'Если вы действительно не заботитесь о герцах и миллисекундах.доступ к API Beep осуществляется через winsound модуль:http://docs.python.org/library/winsound.html
Linux.
$ apt-get install beep $ python >>> os.system("beep -f 555 -l 460")или
$ 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
Я искал то же самое, но в оболочке Linux.
тема привела меня к ответу, - спасибо -
может быть более подходящие для Python образом :
import os beep = lambda x: os.system("echo -n '\a';sleep 0.2;" * x) beep(3)Примечания :
- значение сна (здесь 0.2), зависит от длины (в секундах) по умолчанию звуковой сигнал
- я выбрал использовать
os.system, а потомsubprocess.Popenдля простоты (это может быть плохой)- ' - n ' для
echoбольше не будет дисплей- в прошлом ';' после
sleepнеобходимо для результирующей последовательности текста (*x)- также проверено через ssh на X Терме
кросс-платформенный образом:
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')
Comments