Utilizando Python, ¿cómo puedo leer / escribir datos en la memoria como lo haría con un archivo?

Estoy acostumbrado a C ++, y compilo mis clases / funciones de manejo de datos para manejar objetos de flujo en lugar de archivos. Me gustaría saber cómo puedo modificar el siguiente código, para que pueda manejar una secuencia de datos binarios en la memoria, en lugar de un identificador de 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 supone que self.file es un archivo, que se abre así:

 file = open('somefile.data, 'r+b') 

¿Cómo podría usar el mismo código y, sin embargo, 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 pensé que valiera la pena publicar el código para eso).

Además, si es posible, me gustaría que el nuevo código también maneje los archivos.

Puede usar una instancia de StringIO.StringIO (o cStringIO.StringIO , más rápido) para proporcionar una interfaz similar a un archivo a los datos en memoria.

Eche un vistazo al módulo StringIO de Python, docs aquí , que podría ser lo que está buscando.

Echa un vistazo a ‘StringIO’ (lee y escribe cadenas como archivos)

Utilice StringIO .

Me gusta el momento de la respuesta. (excepto el mio)

¿Podemos ver el tiempo de respuesta en milisegundos?

por supuesto StringIO