Ejemplo de Python Pickle

En este tutorial estaremos discutiendo sobre el Ejemplo de Python Pickle. En nuestro tutorial anterior, discutimos sobre Python Multiprocessing.

Python Pickle

Python Pickle se utiliza para serializar y deserializar una estructura de objetos de Python. Cualquier objeto en Python puede ser “pickeado” para que pueda ser guardado en el disco. En primer lugar, Python pickle serializa el objeto y luego convierte el objeto en un flujo de caracteres para que este flujo de caracteres contenga toda la información necesaria para reconstruir el objeto en otro script de Python. Tenga en cuenta que el módulo pickle no es seguro contra datos erróneos o maliciosamente construidos según la documentación. Por lo tanto, nunca despickee datos recibidos de una fuente no confiable o no autenticada.

Python Pickle dump

En esta sección, vamos a aprender cómo almacenar datos usando Python pickle. Para hacerlo, primero tenemos que importar el módulo pickle. Luego, usar la función pickle.dump() para almacenar los datos del objeto en el archivo. La función pickle.dump() toma 3 argumentos. El primer argumento es el objeto que deseas almacenar. El segundo argumento es el objeto de archivo que obtienes al abrir el archivo deseado en modo write-binary (wb). Y el tercer argumento es el argumento de clave-valor. Este argumento define el protocolo. Hay dos tipos de protocolo – pickle.HIGHEST_PROTOCOL y pickle.DEFAULT_PROTOCOL. Consulta el código de muestra para saber cómo guardar datos usando pickle.

import pickle

# tomar la entrada del usuario para obtener la cantidad de datos
number_of_data = int(input('Enter the number of data : '))
data = []

# tomar la entrada de los datos
for i in range(number_of_data):
    raw = input('Enter data '+str(i)+' : ')
    data.append(raw)

# abrir un archivo donde quieres almacenar los datos
file = open('important', 'wb')

# volcar información en ese archivo
pickle.dump(data, file)

# cerrar el archivo
file.close()

El siguiente programa te pedirá que ingreses alguna entrada. En mi caso, fue así.

Carga de Pickle en Python

Para recuperar datos en formato pickle, los pasos son bastante simples. Tienes que usar la función pickle.load() para hacerlo. El argumento principal de la función de carga de pickle es el objeto de archivo que obtienes al abrir el archivo en modo de lectura binaria (rb). ¡Simple! ¿Verdad? Escribamos el código para recuperar los datos que almacenamos en pickle usando el código de volcado de pickle. Observa el siguiente código para entenderlo.

import pickle

# Abrir un archivo donde has almacenado los datos en formato pickle
file = open('important', 'rb')

# Volcar información en ese archivo
data = pickle.load(file)

# Cerrar el archivo
file.close()

print('Showing the pickled data:')

cnt = 0
for item in data:
    print('The data ', cnt, ' is : ', item)
    cnt += 1

El resultado será el siguiente:

Showing the pickled data:
The data  0  is :  123
The data  1  is :  abc
The data  2  is :  !@#$

Ejemplo de Pickle en Python

I made a short video showing execution of python pickle example programs – first to store data into file and then to load and print it. As you can see that the file created by python pickle dump is a binary file and shows garbage characters in the text editor.

Notas importantes sobre Python Pickle

Algunos puntos importantes sobre el módulo pickle de Python son:

  1. El protocolo de pickle es específico de Python: no se garantiza que sea compatible entre diferentes lenguajes de programación. Esto significa que es muy probable que no puedas transferir la información para hacerla útil en otros lenguajes de programación.
  2. Tampoco hay garantía de compatibilidad entre diferentes versiones de Python porque no todas las estructuras de datos de Python pueden ser serializadas por el módulo.
  3. La última versión del protocolo pickle se utiliza de forma predeterminada a menos que lo cambies manualmente.
  4. Por último, el módulo pickle no es seguro contra datos erróneos o maliciosamente construidos según la documentación.

Entonces, eso es todo sobre el ejemplo de pickle en Python. Espero que lo entiendas bien. Para cualquier consulta adicional, por favor usa la sección de comentarios. 🙂 Referencia: Documentación oficial

Source:
https://www.digitalocean.com/community/tutorials/python-pickle-example