39. Serialización I
Vídeo
Notas personales
En esta lección estudiaremos cómo serializar colecciones de ciertos objetos. La serialización consiste en guardar en un fichero externo una lista, un diccionario o, incluso, un objeto; con la particularidad de que la codificación de dicho fichero es binaria.
Esta estrategia resulta de utilidad a la hora de compartir archivos por Internet, ya que su distribución es más sencilla, o bien si deseamos guardarlo en un dispositivo de almacenamiento externo o en una base de datos.
Para tal empresa utilizaremos la biblioteca de Python pickle
, para aprovechar los métodos:
dump()
: vuelca datos en un fichero binario externo, yload()
: carga datos de un fichero binario externo.
Veamos un ejemplo sencillo de aplicación de ambas funciones. Almacenaremos en un archivo binario externo una lista de nombres y, posteriormente, la rescataremos:
import pickle
nombres = ["Pedro", "Ana", "María", "Isabel"]
fichero = open("lista_nombres", "wb")
pickle.dump(nombres, fichero)
fichero.close()
del fichero
Notas:
- A la hora de crear el fichero externo en modo escritura, con el método
open()
, hemos de indicarle que esta será binaria, para lo cual el correspondiente parámetro toma como valor de argumento"wb"
. - La instrucción
del
borra el puntero de la memoria hacia la variablefichero
, dejando de estar disponible su acceso a partir de ese momento. - Al ejecutar el anterior bloque de código, en la carpeta correspondiente del
repositorio), aparecerá un archivo externo de tipo binario denominado
lista_nombres
.
A continuamos, veamos cómo rescatar la información que reside en el interior del mencionado fichero.
import pickle
fichero = open("lista_nombres", "rb")
lista = pickle.load(fichero)
fichero.close()
print(lista)
['Pedro', 'Ana', 'María', 'Isabel']
Nota: para activar el modo de lectura de archivos binarios, el parámetro correspondiente de la función open()
ha de tomar el valor de argumento "rb"
.
Código fuente
El código fuente y los posibles ficheros externos generados correspondientes a esta lección se encuentran disponibles para su consulta en la carpeta /lecciones/39/
del
repositorio.