Buenas, escribo este tema para ver si alguien de ustedes me ayudan con este problema que estoy teniendo.
Se trata de que obtengo este error: TypeError: a bytes-like object is required, not 'str'
Pues el error se explica por si solo, pero no le hallo solución.
Aca está mi código:
import sys
def beep():
if sys.platform == 'linux':
audio = open('/dev/audio', 'wb')
count=0
while count <250:
beep = chr(63) + chr(63) + chr(63) + chr(63)
audio.write(beep)
beep = chr(0) + chr(0) + chr(0) + chr(0)
audio.write(beep)
count=count + 1
audio.close()
beep()
Por cierto, me doy cuenta que parezco noob comparado con los ingeniosos script que hay aca xD
Parece que es la forma en que se procesa el archivo.
Esta respuesta de stack overflow hizo que compilara el script https://stackoverflow.com/questions/33054527/python-3-5-typeerror-a-bytes-like-object-is-required-not-str-when-writing-t (https://stackoverflow.com/questions/33054527/python-3-5-typeerror-a-bytes-like-object-is-required-not-str-when-writing-t). Cambia el open('/dev/audio', 'wb') por open('/dev/audio', 'w')
Espero te sirva.
El mismo error te lo está diciendo, debes escribir en el archivo los datos en formato bytes y no en formato str, puedes hacer la conversión usando el método encode de la clase str: str.encode() (https://docs.python.org/3/library/stdtypes.html#str.encode), simplemente cuando vas a escribir en el archivo, hazlo así:
audio.write(str.encode(beep))
Y por favor, ten cuidado con los niveles de identación, auqnue python es muy permisivo con eso, lo ideal es trabajar a cuatro espacios, así todos pueder leer, modificar y corregir tus códigos mucho más fácil.
Saludos!