Cómo usar Pickle para guardar objetos en Python

Pickle, que forma parte de la biblioteca de Python de forma predeterminada, es un módulo importante siempre que necesite persistencia entre sesiones de usuario. Como módulo, pickle permite guardar objetos Python entre procesos.

Si está programando para un base de datos, juego, foro o alguna otra aplicación que debe guardar información entre sesiones, pickle es útil para guardar identificadores y configuraciones. El módulo pickle puede almacenar cosas como tipos de datos como booleanos, cadenas y matrices de bytes, listas, diccionarios, funciones y más.

Nota: El concepto de decapado también se conoce como serialización, clasificación y aplanamiento. Sin embargo, el punto es siempre el mismo: guardar un objeto en un archivo para su posterior recuperación. Pickling logra esto escribiendo el objeto como una larga secuencia de bytes.

Código de ejemplo de Pickle en Python

Para escribir un objeto en un archivo, usa un código en la siguiente sintaxis:

pepinillo de importación 
objeto = Objeto ()
manejador de archivos = abierto (nombre de archivo, 'w')
instagram viewer

pickle.dump (objeto, controlador de archivos)

Así es como se ve un ejemplo del mundo real:

pepinillo de importación 
matemáticas de importación
object_pi = math.pi
file_pi = open ('filename_pi.obj', 'w')
pickle.dump (object_pi, file_pi)

Este fragmento escribe el contenido de object_pi al archivo controlador file_pi, que a su vez está vinculado al archivo filename_pi.obj en el directorio de ejecución.

Para restaurar el valor del objeto en la memoria, cargue el objeto desde el archivo. Suponiendo que el pepinillo aún no se ha importado para su uso, comience por importarlo:

pepinillo de importación 
manejador de archivos = abierto (nombre de archivo, 'r')
objeto = pickle.load (manejador de archivos)

El siguiente código restaura el valor de pi:

pepinillo de importación 
file_pi2 = abierto ('filename_pi.obj', 'r')
object_pi2 = pickle.load (file_pi2)

El objeto está listo para usar una vez más, esta vez como object_pi2. Puede, por supuesto, reutilizar los nombres originales, si lo prefiere. Este ejemplo usa nombres distintos para mayor claridad.

Cosas para recordar sobre Pickle

Tenga en cuenta estas cosas cuando use el módulo de pickle:

  • El protocolo de pickle es específico de Python: no se garantiza que sea compatible con varios idiomas. Lo más probable es que no pueda transferir la información para que sea útil en Perl, PHP, Java u otros idiomas.
  • Tampoco hay garantía de compatibilidad entre diferentes versiones de Python. La incompatibilidad existe porque no todas las estructuras de datos de Python pueden ser serializadas por el módulo.
  • Por defecto, se utiliza la última versión del protocolo de pickle. Sigue siendo así a menos que lo cambie manualmente.

Propina: Descubre también Cómo usar Shelve para guardar objetos en Python para otro método de mantener la continuidad del objeto.

instagram story viewer