Estoy tratando de que el programa me emita un pitido. Estoy en una máquina de Windows. Miré http://docs.python.org/library/winsound.html
Pero no estoy seguro de cómo puedo programar esto con un escáner de código de barras.
Aquí está mi código para el escáner de código de barras en serie.
ser = serial.Serial()
ser.baudrate = 9600
#for windows
ser.port = 2 #for COM3
ser.open()
ser.write('hello')
ser.close()
ACTUALIZACIÓN: Ya que estoy molestando a mis compañeros de trabajo con el pitido. ¿Puedo hacer que pase a través del conector de audio para auriculares?
python
audio
serial-port
Marc Brigham
fuente
fuente
Respuestas:
En Windows, si solo desea que la computadora emita un pitido:
Se
winsound.Beep()
puede utilizar donde desee que suene el pitido.fuente
def annoy(): for i in range(1, 10): winsound.Beep(i * 100, 200)
def sos(): for i in range(0, 3): winsound.Beep(2000, 100) for i in range(0, 3): winsound.Beep(2000, 400) for i in range(0, 3): winsound.Beep(2000, 100)
. Probablemente debería volver al trabajo ahora: DLa forma multiplataforma de hacer esto es
print('\a')
. Esto enviará el carácter de campana ASCII a la salida estándar y, con suerte, generará un pitido (un para "alerta"). Tenga en cuenta que muchos emuladores de terminal modernos ofrecen la opción de ignorar los caracteres de campana.Como está en Windows, le alegrará saber que Windows tiene su propia API de pitidos (prepárese) , que le permite enviar pitidos de longitud y tono arbitrarios. Tenga en cuenta que esta es una solución solo para Windows, por lo que probablemente debería preferirla a
print('\a')
menos que realmente le interesen los hercios y los milisegundos.Se accede a la API de Beep a través del módulo winsound : http://docs.python.org/library/winsound.html
fuente
Linux.
O
fuente
os.system
está bien, especialmente con un valor codificado, no todo el mundo está escribiendo un servidor web.-f 1047-l
, debería ser-f 1047 -l
, falta espacioEstaba buscando lo mismo pero para Linux shell.
El tema me trajo a una respuesta -gracias-
Quizás de manera más pitónica:
Notas:
os.system
lugar de hacerlosubprocess.Popen
por simplicidad (podría ser malo)echo
es no tener más pantallasleep
es necesario para la secuencia de texto resultante (* x)fuente
echo
(print
) ysleep
, por lo que en realidad no es pitónico realizar llamadas externas, especialmente cuando son llamadas Unix (no portátiles).Hay una respuesta de Windows y una respuesta de Debian, así que aquí hay una de Mac :
Esto supone que solo está buscando una forma rápida de hacer un sonido de alerta personalizable, y no específicamente el pitido piezeoeléctrico que recibe en Windows:
Descargo de responsabilidad: puede reemplazar
os.system
con una llamada alsubprocess
módulo si le preocupa que alguien piratee su código de sonido.Consulte: Cómo hacer que suene el pitido del hardware en Mac OS X 10.6
fuente
La forma multiplataforma:
fuente
sys.stdout.write('\a')
He hecho un paquete para ese propósito.
Puedes usarlo así:
Depende de sox y solo es compatible con python3.
fuente
Utilizando
pygame
en cualquier plataformaLa ventaja de usarlo
pygame
es que se puede hacer que funcione en cualquier plataforma de sistema operativo. Sin embargo, el siguiente código de ejemplo es para GNU / Linux .Primero instale el
pygame
módulopython3
como se explica en detalle aquí .El
pygame
módulo puede jugar.wav
y.ogg
archivos desde cualquier ubicación del archivo. Aquí hay un ejemplo:fuente
En linux:
print('\007')
hará que suene la campana del sistema.fuente