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')