Cómo encurtir objetos en Python

Cómo encurtir objetos en Python
Cualquier datos se puede serializar y deserializarse en Python utilizando el módulo JSON y Pickle. Antes de almacenar cualquier dato en un archivo, los objetos de Python se serializan utilizando el módulo Pickle. Los objetos de Python se convierten en transmisiones de caracteres utilizando este módulo. Cuando el usuario desea recuperar los datos del archivo para usar otro script de Python, los datos del archivo están deserializados por el módulo Pickle. Las características del módulo Pickle y cómo este módulo se puede usar en el script de Python para la serialización y la deserialización se describen en este tutorial.

Características de Pickle:

  • Está diseñado principalmente para usar para el script de python.
  • Se usa para guardar los objetos de pitón entre los procesos.
  • Realiza un seguimiento de todos los objetos serializados y el objeto que se está serializado antes no volverá a serializar nuevamente.
  • Puede guardar y restaurar la instancia de clase de forma transparente.
  • No es seguro de usar. Por lo tanto, no es mejor descartar datos de una fuente desconocida.

dump () para serialización:

La función dump () se usa para convertir los datos del objeto en una secuencia de caracteres antes de guardar 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 serializar. El segundo argumento toma el objeto del controlador de archivos de ese archivo donde se almacenarán los datos de PCKLED. El último argumento toma el nombre del protocolo.

Sintaxis:

dump (data_object, file_object, [protocolo])

load () para la deserialización:

La función Load () se usa para convertir los datos de la secuencia de caracteres del archivo en un objeto Python. Esta función contiene solo un argumento y el objeto del controlador de archivo del archivo pasa a medida que el valor del argumento desde donde se recuperarán los datos.

Sintaxis:

Load (file_object)

Pickle un objeto simple para almacenar en un archivo

Crea un archivo llamado encurtido.py con el siguiente guión de Python. En el siguiente script, un objeto de datos nombrado objeto de datos se declara almacenar cinco nombres de idiomas iterando el bucle para. A continuación, el método Open () se utiliza para asignar un controlador de archivos para crear un archivo binario llamado lenguas. vertedero() la función se usa aquí para serializar los datos de objeto de datos y guárdelo en el lenguas archivo. Si la serialización se realizará correctamente, entonces un mensaje, "los datos se serializan" se imprimirán.

# Importar el módulo Pickle
encurtido de importación
# Declarar el objeto para almacenar datos
dataObject = []
# Iterar el bucle for 5 veces y tomar nombres de idiomas
para n en el rango (5):
raw = input ('Ingrese un nombre de idioma:')
objeto de datos.Añadir (RAW)
# Abra un archivo para escribir datos
file_handler = Open ('Idiomas', 'WB')
# Volcar los datos del objeto en el archivo
pepinillo.dump (dataObject, file_handler)
# Cierre el controlador de archivos para liberar los recursos
file_handler.cerca()
# Mensaje de impresión
imprimir ('los datos se serializan')

Producción:

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

No vica los datos de un archivo

Despreciar los datos es lo opuesto a los datos de encinebido. Crea un archivo llamado encurtido.py con el siguiente guión de Python. Aquí, abierto() El método se utiliza para abrir el archivo binario nombrado lenguas, creado en el ejemplo anterior. carga() La función se utiliza para descargar los datos del archivo y almacenarlos en la variable objeto de datos. Próximo, para el bucle se usa iterar los datos del objeto de datos e imprimir en la terminal.

# Importar el módulo Pickle
encurtido de importación
# Abra un controlador de archivos para leer un archivo desde donde se cargarán los datos
file_handler = Open ('Idiomas', 'RB')
# Cargar los datos del archivo después de la deserialización
dataObject = Pickle.Load (file_handler)
# Cierre el controlador de archivos
file_handler.cerca()
# Mensaje de impresión
Imprimir ('datos después de la deserialización')
# Iterar el bucle para imprimir los datos después de la deserialización
para val en dataObject:
Imprimir ('El valor de los datos:', val)

Producción:

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

Encurtir un objeto de clase a un archivo

Cómo se puede encurtir un objeto de clase en el siguiente ejemplo. Crea un archivo llamado piscina3.py Con el siguiente script. Aquí, Empleado Se declara que la clase asigna tres valores de datos de un empleado. A continuación, llamado un objeto de controlador de archivos frasehandler se crea para abrir un archivo para escribir. Después de inicializar el objeto de clase, los datos se serializan utilizando vertedero() función y almacenada en el archivo nombrado Empleado de empleo. Si el archivo creará correctamente, entonces el mensaje, "Los datos se serializan" imprimirá.

# Importar módulo de encurtido
encurtido de importación
# Declarar la clase de empleados para almacenar el valor
Empleado de la clase:
def __init __ (self, nombre, correo electrónico, publicación):
ser.nombre = nombre
ser.correo electrónico = correo electrónico
ser.post = post
#Cree objeto de empleado
Empobject = Empleado ('Farheen', '[email protected] ',' gerente ')
# Abra el archivo para los datos del almacén
fileHandler = Open ('Empacateedata', 'WB')
# Guarde los datos en el archivo
pepinillo.Dump (Empobject, FileHandler)
# Cierre el archivo
frasehandler.cerca()
# Mensaje de impresión
imprimir ('los datos se serializan')

Producción:

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

No vica los datos a un objeto de clase

Una clase con las propiedades y métodos necesarios requerirá declarar para recuperar los datos de un archivo a un objeto de clase. Crea un archivo llamado piscina4.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, Empleado de empleo para leer. Próximo, carga() La función se utiliza para almacenar los datos en el objeto de clase después de la deserialización. mostrar() función del Empleado Se llama a la clase para imprimir los valores de datos del objeto de clase.

# Importar módulo de encurtido
encurtido de importación
# Declarar la clase de empleados para leer e imprimir datos de un archivo
Empleado de la clase:
def __init __ (self, nombre, correo electrónico, publicación):
ser.nombre = nombre
ser.correo electrónico = correo electrónico
ser.post = post
DEF DISPLAY (Self):
Imprimir ('Información del empleado:')
Imprimir ('Nombre:', Self.nombre)
Imprimir ('Correo electrónico:', Self.correo electrónico)
Imprimir ('Publicar:', Self.correo)
# Abra el archivo para leer
fileObject = Open ('Empacateedata', 'RB')
# Deshiple los datos
Empleado = Pickle.Load (fileObject)
# Cerrar el archivo
fileObject.cerca()
#Imprima el marco de datos
empleado.mostrar()

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 los datos. Después de completar los ejemplos que se muestran en este tutorial, los datos que se transfieren de un script de Python a otro script de Python serán más fácil para cualquier persona.