Estoy acostumbrado a C++, y construyo mis clases/funciones de manejo de datos para manejar objetos de transmisión en lugar de archivos. Me gustaría saber cómo podría modificar el siguiente código, para que pueda manejar una secuencia de datos binarios en memoria, en lugar de un manejador de archivo.Usando Python, ¿cómo puedo leer/escribir datos en la memoria como lo haría con un archivo?
def get_count(self):
curr = self.file.tell()
self.file.seek(0, 0)
count, = struct.unpack('I', self.file.read(c_uint32_size))
self.file.seek(curr, 0)
return count
En este caso, el código se supone self.file
es un archivo, abierto de esta manera:
file = open('somefile.data, 'r+b')
¿Cómo puede usar el mismo código, sin embargo, en vez de hacer algo como esto:
file = get_binary_data()
Donde get_binary_data()
devuelve una cadena de datos binarios. Aunque el código no lo muestra, también necesito escribir en la transmisión (no creo que valga la pena publicar el código para eso).
Además, si es posible, me gustaría que el nuevo código maneje los archivos también.
_la el enlace de arriba mencionado no funciona debido a que ("StringIO y cStringIO" se han ido en Python 3.0. Existen solamente en 2.0. Io les ha sustituido en 3,0 ") _ Lo siento por este comentario, pero parece una tradición para esta respuesta ... – tampe125