Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Escribir serie de bytes.

Estas en el tema de Escribir serie de bytes. en el foro de Python en Foros del Web. Hola de nuevo. Otra duda. Cuando intento escribir en un archivo directamente bytes uso: miarchivo.write([0xFF]) lo cual funciona bien. El problema ahora es que tengo ...
  #1 (permalink)  
Antiguo 17/08/2013, 17:53
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 4 meses
Puntos: 52
Escribir serie de bytes.

Hola de nuevo.
Otra duda.

Cuando intento escribir en un archivo directamente bytes uso:

miarchivo.write([0xFF])

lo cual funciona bien.

El problema ahora es que tengo una funcion que regresa un valor entero que a veces es mayor a un byte ( > 255 ).
Y pues ahi python 3 protesta.
Estuve viendo que hay bytearrays y cosas asi.
El problema es, como le hago para convertir ese numero en una representacion de tipo string ( 0xabc se convierta a '0xabc').
Si puedo obtener esa representacion, creo que es mas sencilla convertirla en una lista o serie de bytes para escribirlos.

O no se si tengan alguna otra recomendacion.

SAludos
  #2 (permalink)  
Antiguo 17/08/2013, 20:28
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Escribir serie de bytes.

Puedes hacer algo así:

Código Python:
Ver original
  1. def to_bytearray(some_int):
  2.     x = hex(some_int)[2:]
  3.     if len(x) % 2 == 1:
  4.         x = '0' + x
  5.     return bytearray.fromhex(x)
  #3 (permalink)  
Antiguo 17/08/2013, 20:50
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 4 meses
Puntos: 52
Respuesta: Escribir serie de bytes.

Pues algo similar era la solucion manual que pensaba. Aunque esta esta mucho mas corta jaja.

Ahora, si escribo un bytearray a un archivo, se escribe tal cual? o sigue las reglas de little/big endian.

Saludos
  #4 (permalink)  
Antiguo 17/08/2013, 23:01
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Escribir serie de bytes.

Se escribe tal como se lo pases.

Otra cosa la función que te pase lo devuelve de modo little endian.

Etiquetas: serie, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:51.