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()
更新:由于我烦恼我的同事与嘟嘟声。 我可以通过耳机的audio插孔吗?
在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的贝尔字符标准输出,并希望产生一个哔声(一个“警报”)。 请注意,许多现代terminal仿真器提供了忽略铃声字符的选项。
既然你是在Windows上,你会很高兴听到Windows有自己的(叮叮当当) Beep API ,它允许你发送任意长度和音高的嘟嘟声。 请注意,这是一个仅限于Windows的解决scheme,因此除非您真正关心赫兹和毫秒,否则您应该更喜欢print '\a'
。
Beep API可以通过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
我正在寻找相同的,但对于Linuxshell。
这个话题给了我一个答案, – 谢谢 –
也许更pythonic的方式:
import os beep = lambda x: os.system("echo -n '\a';sleep 0.2;" * x) beep(3)
备注:
- 睡眠值(此处为0.2)取决于默认蜂鸣声的长度(秒)
- 我select使用
os.system
而不是os.system
为了简单(可能是坏的) -
echo
的'-n'是没有更多的显示 - 最后 ';'
sleep
后所需的文本序列(* x) - 也通过sshtesting在X期限
我已经为此做了一个包 。
你可以像这样使用它:
from pybeep.pybeep import PyVibrate, PyBeep PyVibrate().beep() PyVibrate().beepn(3) PyBeep().beep() PyBeep().beepn(3)
这取决于sox ,只支持python3。
跨平台的方式:
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')