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()
更新:因为我一直在打扰我的同事们,所以我想问一下,能不能让声音通过耳机插孔出来?
13 个回答
43
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
194
跨平台的方法是使用 print('\a')
。这个命令会发送一个ASCII铃声字符到标准输出,通常会发出一个哔声(这个“a”代表“警报”)。不过要注意,很多现代的终端模拟器可以选择忽略这个铃声。
如果你在使用Windows,你会很高兴地发现Windows有自己的(准备好哦)Beep API,这个接口可以让你发出任意长度和音调的哔声。需要注意的是,这个方法只适用于Windows,所以如果你不太在意赫兹和毫秒的话,还是建议用 print('\a')
。
要使用Beep API,你需要通过 winsound 模块来访问:http://docs.python.org/library/winsound.html
245
在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()
这个命令。