Para poner valores en un archivo, debe convertirlos en cadenas. Ya ha visto como hacerlo con str:
1: >>> f.write (str(12.3)) 2: >>> f.write (str([1,2,3]))El problema es que cuando vuelve usted a leer el valor, obtiene una cadena. Ha perdido la información del tipo de dato original. En realidad, no puede distinguir donde termina un valor y comienza el siguiente:
1: >>> f.readline()2: '12.3[1, 2, 3]'
La solución es el encurtido, llamado así porque “conserva" estructuras de datos.
El modulo pickle contiene las ordenes necesarias. Para usarlo, importe pickle y luego abra el archivo de la forma habitual:
1: >>> import pickle2: >>> f = open("test.pck","w")
Para almacenar una estructura de datos, use el metodo dump y luego cierre el archivo de la forma habitual:
1: >>> pickle.dump(12.3, f) 2: >>> pickle.dump([1,2,3], f) 3: >>> f.close()Ahora podemos abrir el archivo para leer y cargar las estructuras de datos que volcamos ahí:
1: >>> f = open("test.pck","r")
2: >>> x = pickle.load(f) 3: >>> x 4: 12.3 5: >>> type(x)6: <type 'float'>
7: >>> y = pickle.load(f) 8: >>> y 9: [1, 2, 3] 10: >>> type(y)11: <type 'list'>
Cada vez que invocamos load obtenemos un valor del archivo, completo con su tipo original.
Comentarios
Publicar un comentario