Cómo encurtir objetos en Python

How Pickle Objects Python



Cualquier dato se puede serializar y deserializar en Python usando JSON y el módulo Pickle. Antes de almacenar cualquier dato en un archivo, los objetos de Python se serializan usando el módulo pickle. Los objetos de Python se convierten en secuencias de caracteres mediante este módulo. Cuando el usuario desea recuperar los datos del archivo para usar otro script de Python, el módulo pickle deserializa los datos del archivo. En este tutorial se describen las características del módulo pickle y cómo se puede usar este módulo en un script de Python para la serialización y deserialización.

Características de la salmuera:

  • Está diseñado principalmente para usarse con secuencias de comandos de Python.
  • Se utiliza para guardar los objetos de Python entre los procesos.
  • Realiza un seguimiento de todos los objetos serializados y el objeto que se serializa antes no se serializará nuevamente.
  • Puede guardar y restaurar la instancia de clase de forma transparente.
  • No es seguro de usar. Por lo tanto, no es mejor eliminar datos de una fuente desconocida.

dump () para serialización:

La función dump () se utiliza para convertir los datos del objeto en una secuencia de caracteres antes de guardarlos en un archivo. Esta función puede tomar tres argumentos. Los dos primeros argumentos son obligatorios y el último argumento es opcional. El primer argumento toma un objeto de datos que necesita serializarse. El segundo argumento toma el objeto manejador de archivos de ese archivo donde se almacenarán los datos agrupados. El último argumento toma el nombre del protocolo.







Sintaxis:



vertedero(objeto de datos,objeto_archivo, [protocolo])

load () para deserialización:

La función load () se utiliza para convertir datos de flujo de caracteres del archivo en un objeto Python. Esta función contiene solo un argumento y el objeto del controlador de archivos pasa como el valor del argumento desde donde se recuperarán los datos.



Sintaxis:





carga(objeto_archivo)

Escoja un objeto simple para almacenarlo en un archivo

Crea un archivo llamado pickle1.py con el siguiente script de Python. En el siguiente script, un objeto de datos llamado objeto de datos se declara para almacenar cinco nombres de idiomas iterando el bucle for. A continuación, el método open () se usa para asignar un controlador de archivos para crear un archivo binario llamado Idiomas. vertedero() La función se utiliza aquí para serializar los datos de objeto de datos y guárdelo en el idiomas expediente. Si la serialización se realiza correctamente, se imprimirá un mensaje, Data is serialized.

# Importar el módulo de pepinillos
importar pepinillo

# Declare el objeto para almacenar datos
objeto de datos= []

# Itere el bucle for 5 veces y tome los nombres de los idiomas
pornorteen distancia(5):
crudo= aporte('Introduzca un nombre de idioma:')

objeto de datos.adjuntar(crudo)

# Abrir un archivo para escribir datos
manejador_archivo= abierto('idiomas', 'wb')

# Volcar los datos del objeto en el archivo
pepinillo.vertedero(objeto de datos,manejador_archivo)

# cierra el controlador de archivos para liberar los recursos
manejador_archivo.cerrar()

# Imprimir mensaje
impresión('Los datos están serializados')

Producción:



Después de ejecutar el script, tomará cinco nombres de idiomas como entrada.

Deseleccionar datos de un archivo

eliminar el decapado de los datos es lo opuesto al decapado de los datos. Crea un archivo llamado pickle2.py con el siguiente script de Python. Aquí, abierto() El método se usa para abrir el archivo binario llamado idiomas , creado en el ejemplo anterior. carga() La función se utiliza para eliminar los datos del archivo y almacenarlos en la variable. objeto de datos . Próximo, por se utiliza iterar los datos de la objeto de datos e imprimir en la terminal.

# Importar el módulo de pepinillos
importar pepinillo

# Abra un controlador de archivos para leer un archivo desde donde se cargarán los datos
manejador_archivo= abierto('idiomas', 'rb')

# Cargue los datos del archivo después de la deserialización
objeto de datos= pepinillo.carga(manejador_archivo)

# Cierra el manejador de archivos
manejador_archivo.cerrar()

# Imprimir mensaje
impresión('Datos después de la deserialización')

# Itere el ciclo para imprimir los datos después de la deserialización
porhorasenobjeto de datos:
impresión('El valor de los datos:',horas)

Producción:

La siguiente salida aparecerá después de ejecutar el script.

Seleccionar un objeto de clase en un archivo

En el siguiente ejemplo se muestra cómo se puede encurtir un objeto de clase. Crea un archivo llamado pickle3.py con el siguiente script. Aquí, Empleado La clase se declara para asignar tres valores de datos de un empleado. A continuación, un objeto controlador de archivos llamado fileHandler se crea para abrir un archivo para escritura. Después de inicializar el objeto de clase, los datos se serializan usando vertedero() función y almacenado en el archivo llamado employeeData . Si el archivo se creará correctamente, entonces el mensaje, Los datos se serializan imprimirá.

# Importar módulo de pepinillos
importar pepinillo

# Declare la clase de empleado para almacenar el valor
claseEmpleado:
def __en eso__(uno mismo,nombre, Email,correo):
uno mismo.nombre =nombre
uno mismo.Email = Email
uno mismo.correo =correo

#Crear objeto de empleado
empObject=Empleado('Farheen', '[correo electrónico protegido]', 'Gerente')

# Abrir archivo para almacenar datos
fileHandler= abierto('employeeData', 'wb')

# Guarde los datos en el archivo
pepinillo.vertedero(empObject,fileHandler)

# Cerrar el archivo
fileHandler.cerrar()

# Imprimir mensaje
impresión('Los datos están serializados')

Producción:

La siguiente salida aparecerá después de ejecutar el script.

Deseleccionar datos a un objeto de clase

Una clase con las propiedades y métodos necesarios requerirá declararse para recuperar los datos de un archivo a un objeto de clase. Crea un archivo llamado pickle4.py con el siguiente código. Empleado La clase se define aquí para recuperar los datos. fileObject la variable se usa para abrir el archivo, employeeData para leer. Próximo, carga() La función se usa para almacenar los datos en el objeto de clase después de la deserialización. monitor() función de la Empleado Se llama a la clase para imprimir los valores de datos del objeto de clase.

# Importar módulo de pepinillos
importar pepinillo

# Declare la clase de empleado para leer e imprimir datos de un archivo
claseEmpleado:
def __en eso__(uno mismo,nombre, Email,correo):
uno mismo.nombre =nombre
uno mismo.Email = Email
uno mismo.correo =correo

defmonitor(uno mismo):
impresión('Información del empleado:')
impresión('Nombre :', uno mismo.nombre)
impresión('Correo electrónico :', uno mismo.Email)
impresión('Correo :', uno mismo.correo)

# Abra el archivo para leer
fileObject= abierto('employeeData', 'rb')

# Deseleccionar los datos
empleado= pepinillo.carga(fileObject)

# Cerrar el archivo
fileObject.cerrar()

#imprima el marco de datos
empleado.monitor()

Producción:

La siguiente salida aparecerá después de ejecutar el script.

Conclusión

El módulo Pickle es una característica útil de Python para la serialización y deserialización de datos. Después de completar los ejemplos que se muestran en este tutorial, la transferencia de datos de un script de Python a otro script de Python será más fácil para cualquiera.