[pyar] Unicode, str y archivos binarios...

j0hn j0hn.com.ar en gmail.com
Jue Mar 14 12:32:13 ART 2013


2013/3/14 Santiago Paleka <santiagopaleka en gmail.com>

> Hola lista,
>
> Estoy teniendo el siguiente problema:
> Necesito generar un archivo binario, en el que guardo datos con el
> siguiente protocolo:
> 0xAA  -  header(un byte)   -   size - datos en binario
> 0xAA  -  header(un byte)   -   size - datos en binario
> 0xAA  -  header(un byte)   -   size - datos en binario
> 0xAA  -  header(un byte)   -   size - datos en binario
>
> La cantidad de datos en binario está determinada por el byte size.
>
> Todo estos datos los genero sin problemas de la siguiente forma:
>
> binario = ""
> binario = binario + chr(0xAA) + chr(Header_App)
> nexstring = ""
> nextstring += chr(app.AppNum) + chr(app.EstadoActual)
> binario   += chr(len(nextstring)) + nextstring
>
> El problema empieza cuando quiero agregar una cadena unicode al string
> "binario" y la misma tiene acentos, me dice que el valor está fuera de
> rango:
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xaa in position 0:
> ordinal not in range(128)
>
> Por ejemplo lo siguiente tira ese error:
>
> binario = ""
> binario = binario + chr(0xAA) + chr(0x04)
> nextstring = ""
> nextstring += u"áéíóú"
> binario   += chr(len(nextstring)) + nextstring
>
> UnicodeDecodeError: 'utf8' codec can't decode byte 0xaa in position 0:
> invalid start byte
>
> Lo que yo quisiera, en el ejemplo anterior, es obtener en binario = 0xAA
> 0x04 0x05 0xE1 0XE9 0XED 0XF3 0XFA
>
> Espero haberme explicado medianamente bien.
> Como puedo hacer esto?
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>

Por ahí te sirve pegarle una mirada al modulo struct[0], me suena que te
puede servir para este tipo de cosas más allá del problema que tenes.

[0] http://docs.python.org/2/library/struct.html
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130314/e11c9481/attachment.html>


More information about the pyar mailing list