삐 소리를 내도록 프로그램을 얻으려고합니다. 나는 윈도우 머신에있다. 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()
업데이트 : 나는 경고음으로 동료를 짜증나게하고 있기 때문에. 헤드폰 용 오디오 잭을 통해받을 수 있습니까?
답변
Windows에서 컴퓨터에서 신호음 만 들리도록하려면 :
import winsound
frequency = 2500 # Set Frequency To 2500 Hertz
duration = 1000 # Set Duration To 1000 ms == 1 second
winsound.Beep(frequency, duration)
는 winsound.Beep()
당신이 경고음이 발생하여 원하는 목적지까지 사용할 수 있습니다.
답변
이를 수행하는 크로스 플랫폼 방법은 print '\a'
. 그러면 ASCII Bell 문자가 stdout으로 전송되고 경고음이 발생합니다 ( ‘경고’). 많은 최신 터미널 에뮬레이터는 벨 문자를 무시하는 옵션을 제공합니다.
Windows를 사용하고 있기 때문에 Windows 에 임의의 길이와 피치의 경고음을 보낼 수 있는 자체 Beep API 가 있다는 사실에 기뻐할 것 입니다. 이것은 Windows 전용 솔루션이므로 print '\a'
Hertz 및 밀리 초에 대해 정말로 신경 쓰지 않는 한 선호 할 것입니다 .
Beep API는 winsound 모듈을 통해 액세스됩니다 . http://docs.python.org/library/winsound.html
답변
리눅스.
$ 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 쉘을 찾고있었습니다.
이 주제는 저에게 답을주었습니다.-감사합니다-
아마도 더 비단뱀적인 방식 :
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)에 after 가 필요합니다. - 또한 X 용어에서 ssh를 통해 테스트되었습니다.
답변
Windows 답변과 Debian 답변이 있으므로 여기에 Mac이 있습니다 .
여기에서는 Windows에서 발생하는 압전 경고음이 아니라 사용자 지정 가능한 경고음을 빠르게 만드는 방법을 찾고 있다고 가정합니다.
os.system( "say beep" )
면책 조항 : 누군가가 당신의 비프 음 코드를 해킹하는 것이 걱정된다면 모듈에 os.system
대한 호출로 대체 할 수 있습니다 subprocess
.
답변
크로스 플랫폼 방식 :
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')