Leer un archivo Pickle usando Python
-
Lea un archivo Pickle usando el módulo
pickle
en Python -
Lea un archivo Pickle usando el módulo
pandas
en Python
En Python, decapado se refiere a convertir un objeto de Python (listas, diccionarios, etc.) en un flujo binario, y decapado se refiere a convertir un flujo binario de datos en un objeto de Python.
El flujo de datos binario convertido contiene toda la información para reconstruir el objeto original. Desafortunadamente, los archivos pickle generalmente se consideran inseguros.
Los archivos Pickle se utilizan para guardar el estado de un programa (valores de variables, objetos y sus estados, etc.), almacenar objetos de Python en bases de datos en forma de cadenas binarias serializadas, enviar datos a través de TCP o Protocolo de control de transmisión, etc.
Mientras se entrenan modelos de aprendizaje automático, los archivos pickle se utilizan para almacenar pesos de modelos y, a veces, los datos de entrenamiento cargados o los datos de entrenamiento formateados se almacenan nuevamente en el disco en forma de archivos pickle.
En este artículo, entenderemos cómo leer estos archivos pickle usando Python. Discutiremos dos de estas formas.
Lea un archivo Pickle usando el módulo pickle
en Python
Python tiene un módulo incorporado, pickle
, que contiene utilidades para serializar y deserializar datos usando Python. Estos datos se pueden almacenar en archivos pickle.
Podemos usar el módulo pickle
para leer un archivo pickle usando Python. Consulte el siguiente código de Python para lo mismo.
objects = []
file_name = "/path/to/the/pickle/file"
with (open(file_name, "rb")) as f:
while True:
try:
objects.append(pickle.load(f))
except EOFError:
break
En el código anterior, la variable objects
contendrá todos los datos del archivo pickle.
El código recorre el archivo para leerlo hasta que se encuentra una excepción EOFError
. Lo mismo es que los datos se almacenan en objetos dentro de un archivo pickle.
La función load()
del módulo pickle
solo leerá un único objeto. Después de leer un objeto, el puntero del archivo apunta al comienzo del siguiente objeto en el archivo pickle.
Consulte la documentación vinculada aquí para obtener más información.
Lea un archivo Pickle usando el módulo pandas
en Python
Podemos usar la biblioteca pandas
para leer un archivo pickle en Python.
El módulo pandas
tiene un método read_pickle()
que se puede usar para leer un archivo pickle.
Este método acepta un argumento filepath_or_buffer
: la ruta del archivo, la URL o el búfer desde donde se cargará el archivo pickle. Esta función devolverá un objeto sin decapar del archivo.
Ahora veamos cómo usar este método de manera práctica. Consulte el siguiente código de Python para lo mismo.
import pandas as pd
file_name = "/path/to/the/pickle/file"
objects = pd.read_pickle(file_name)
Para obtener más información sobre el método
read_pickle()
, consulte la documentación oficial aquí.