Los encurtidos en Python son sabrosos en el sentido de que representan un objeto Python como una cadena de bytes. Se pueden hacer muchas cosas con esos bytes. Por ejemplo, puede almacenarlos en un archivo o base de datos, o transferirlos a través de una red.
La representación en escabeche de un objeto Python se llama archivo de salmuera. Por lo tanto, el archivo encurtido se puede usar para diferentes propósitos, como almacenar resultados para ser usados por otro programa Python o escribir copias de seguridad. Para obtener el objeto Python original, simplemente desentrañar esa cadena de bytes.
Para picar en Python, usaremos el conservar en vinagre
módulo. Como se indica en la documentación:
El módulo pickle implementa protocolos binarios para serializar y deserializar una estructura de objetos Python. "Decapado" es el proceso mediante el cual una jerarquía de objetos de Python se convierte en un flujo de bytes, y la "descompresión" es la operación inversa, mediante la cual un flujo de bytes (de un archivo binario o un objeto similar a un byte) se convierte nuevamente en una jerarquía de objetos. El decapado (y el despeje) se conocen alternativamente como "serialización", "clasificación" o "aplanamiento"; sin embargo, para evitar confusiones, los términos utilizados aquí son "decapado" y "despeinado".
los conservar en vinagre
módulo nos permite almacenar casi cualquier objeto de Python directamente a un archivo o cadena sin la necesidad de realizar ninguna conversión. Que conservar en vinagre
módulo realmente realiza es lo que se llama serialización de objetos, es decir, convertir objetos hacia y desde cadenas de bytes. El objeto que se va a decapar se serializará en una secuencia de bytes que se pueden escribir en un archivo, por ejemplo, y restaurar en un punto posterior.
conservar en vinagre
los conservar en vinagre
El módulo en realidad ya viene incluido con su instalación de Python. Para obtener una lista de los módulos instalados, puede escribir el siguiente comando en el indicador de Python: ayuda ('modulos')
.
Así que todo lo que necesitas hacer para trabajar con el conservar en vinagre
módulo es para pepinillo de importación
!
A partir de esta sección, veremos algunos ejemplos de decapado para comprender mejor el concepto. Comencemos creando un archivo pickle a partir de un objeto. Nuestro objeto aquí será el que hacer
lista que hicimos en el tutorial de listas de Python.
todo = ['escribir entrada de blog', 'responder a correo electrónico', 'leer en un libro']
Para encurtir nuestro objeto de lista (que hacer
), podemos hacer lo siguiente:
importar pickle todo = ['escribir entrada de blog', 'responder a correo electrónico', 'leer en un libro'] pickle_file = archivo ('todo.pickle', 'w') pickle.dump (todo, pickle_file)
Tenga en cuenta que hemos hecho un pepinillo de importación
para poder usar el conservar en vinagre
módulo. También hemos creado un archivo pickle para almacenar el objeto pickled, a saber: todo.pickle
. los tugurio
función escribe una representación en escabeche de que hacer
al objeto de archivo abierto pickle_file
. En otras palabras, la tugurio
La función aquí tiene dos argumentos: el objeto a pickle, que es el que hacer
lista, y un objeto de archivo donde queremos escribir el pickle, que es todo.pickle
.
Digamos que nos gustaría desentrañar (restaurar) los datos encurtidos; En nuestro caso, esta es la. que hacer
lista. Para ello, podemos escribir el siguiente script:
importar pickle_file = archivo de archivo ('todo.pickle') todo = pickle.load (pickle_file) imprimir (todo)
El script anterior dará salida a la que hacer
elementos de la lista:
['escribir entrada de blog', 'responder al correo electrónico', 'leer en un libro']
Como se menciona en la documentación, el cargar archivo)
La función hace lo siguiente:
Lea una cadena del archivo de objeto de archivo abierto e interprétela como un flujo de datos de salmuera, reconstruyendo y devolviendo la jerarquía de objetos original. Esto es equivalente aUnpickler (archivo) .load ()
.
En la sección anterior, vimos cómo podemos escribir / cargar pickles en / desde un archivo. Esto no es necesario, sin embargo. Quiero decir que si queremos escribir / cargar pepinillos, no siempre tenemos que tratar con archivos, sino que podemos trabajar con pepinillos como cadenas. Así podemos hacer lo siguiente:
importar pickle todo = ['escribir entrada de blog', 'responder al correo electrónico', 'leer en un libro'] pickled_data = pickle.dumps (todo) imprimir (pickled_data)
Tenga en cuenta que hemos utilizado el deshecho
(con una "s" al final) función, que, según la documentación:
Devuelve la representación encurtida del objeto como una cadena, en lugar de escribirla en un archivo.
Con el fin de restaurar los datos decapados anteriores, podemos utilizar el cargas (cadena)
función, de la siguiente manera:
restored_data = pickle.loads (pickled_data)
Según la documentación, lo que el cargas
La función que hace es que:
Lee una jerarquía de objetos encurtidos desde una cadena. Los caracteres en la cadena más allá de la representación del objeto encurtido son ignorados.
En los ejemplos anteriores, hemos tratado el decapado y la restauración (carga) de un solo objeto a la vez. En esta sección, le mostraré cómo podemos hacer eso para más de un objeto. Digamos que tenemos los siguientes objetos:
name = 'Abder' website = 'http://abder.io' english_french = 'paper': 'papier', 'pen': 'stylo', 'car': 'voiture' # dictionary tup = (31, 'abder', 4.0) # tuple
Si desea obtener más información sobre los diccionarios y tuplas de Python, consulte los siguientes tutoriales:
Simplemente podemos encurtir los objetos anteriores ejecutando un serie de tugurio
funciones, de la siguiente manera:
import pickle name = 'Abder' website = 'http://abder.io' english_french = 'paper': 'papier', 'pen': 'stylo', 'car': 'voiture' # dictionary tup = ( 31, 'abder', 4.0) # tuple pickled_file = open ('pickled_file.pickle', 'w') pickle.dump (name, pickled_file) pickle.dump (website, pickled_file) pickle.dump (english_french, pickled_file) pickle. volcado (tup, pickled_file)
Esto decapará los cuatro objetos en el archivo de salmuera. pickled_file.pickle
.
Hay otra manera maravillosa de escribir el script anterior usando el Pickler
clase en el conservar en vinagre
módulo, como sigue:
from pickle import Nombre de Pickler = 'Abder' sitio web = 'http://abder.io' english_french = 'paper': 'papier', 'pen': 'stylo', 'car': 'voiture' # dictionary tup = (31, 'abder', 4.0) # tuple pickled_file = open ('pickled_file.pickle', 'w') p = Pickler (pickled_file) p.dump (nombre); p.dump (sitio web); p.dump (english_french); p.dump (tup)
Para restaurar (cargar) los datos originales, simplemente podemos usar más de uno carga
función, de la siguiente manera:
import pickle pickle_file = open ('pickled_file.pickle') name = pickle.load (pickled_file) website = pickle.load (pickled_file) english_french = pickle.load (pickled_file) tup = pickle.load (pickled_file) print ('Name:' ) print (nombre) print ('Sitio web:') print (sitio web) print ('Inglés al francés:') print (english_french) print ('Tuple data:') print (tup)
La salida del script anterior es:
Nombre: Abder Sitio web: http://abder.io Inglés al francés: 'car': 'voiture', 'pen': 'stylo', 'paper': 'papier' Datos de la tupla: (31, 'abder' , 4.0)
Como con el Pickler
clase, podemos reescribir el script anterior usando el Unpickler
clase en el conservar en vinagre
módulo, como sigue:
desde pickle importar Unpickler pickled_file = open ('pickled_file.pickle') u = Unpickler (pickled_file) name = u.load (); sitio web = u.load (); english_french = u.load (); tup = u.load () print ('Name:') print (name) print ('Website:') print (website) print ('English to French:') print (english_french) print ('Tuple data:') imprimir (tup)
Tenga en cuenta que las variables deben escribirse y leerse en el mismo orden para obtener el resultado deseado. Para evitar cualquier problema aquí, podemos usar un diccionario para administrar los datos, de la siguiente manera:
import pickle name = 'Abder' website = 'http://abder.io' english_french = 'paper': 'papier', 'pen': 'stylo', 'car': 'voiture' # dictionary tup = ( 31, 'abder', 4.0) # tuple pickled_file = open ('pickled_file.pickle', 'w') data = 'name': name, 'website': sitio web, 'english_french_dictionary': english_french, 'tuple': tup pickle.dump (data, pickled_file)
Para restaurar (cargar) los datos decapados en el script anterior, podemos hacer lo siguiente:
import pickle pickled_file = open ('pickled_file.pickle') data = pickle.load (pickled_file) name = data ['name'] website = data ['website'] english_french = data ['english_french_dictionary'] tup = data ['tupla '] print (' Name: ') print (name) print (' Website: ') print (website) print (' English to French: ') print (english_french) print (' Tuple data: ') print (tup)
Bueno, esta parece una combinación interesante. Si se está preguntando qué son las Pandas, puede aprender más sobre ellas en el tutorial de Introducción a Pandas. La estructura básica de datos de pandas
se llama Marco de datos
, Una estructura de datos tabular compuesta de columnas y filas ordenadas..
Tomemos un ejemplo de Marco de datos
del tutorial de Pandas:
importar pandas como pd name_age = 'Name': ['Ali', 'Bill', 'David', 'Hany', 'Ibtisam'], 'Age': [32, 55, 20, 43, 30] data_frame = pd.DataFrame (name_age)
Para encurtir nuestros Marco de datos
, podemos usar el to_pickle ()
función, de la siguiente manera:
data_frame.to_pickle ('my_panda.pickle')
Para restaurar (cargar) el encurtido. Marco de datos
, podemos usar el read_pickle ()
función, de la siguiente manera:
restore_data_frame = pd.read_pickle ('my_panda.pickle')
Al juntar todo lo que hemos mencionado en esta sección, así es como se ve la secuencia de comandos que escurre y carga un objeto de pandas:
importar pandas como pd name_age = 'Name': ['Ali', 'Bill', 'David', 'Hany', 'Ibtisam'], 'Age': [32, 55, 20, 43, 30] data_frame = pd.DataFrame (name_age) data_frame.to_pickle ('my_panda.pickle') restore_data_frame = pd.read_pickle ('my_panda.pickle') imprimir (restore_data_frame)
En este tutorial, he cubierto un módulo interesante llamado conservar en vinagre
. Hemos visto con qué facilidad este módulo nos permite almacenar objetos de Python para diferentes propósitos, como usar el objeto con otro programa de Python, transferir el objeto a través de una red, guardar el objeto para su uso posterior, etc. Simplemente podemos declinar el objeto de Python , y descomprimir (cargar) cuando queremos restaurar el objeto original.
No dude en ver lo que tenemos disponible para la venta y para estudiar en el mercado, y no dude en hacer cualquier pregunta y proporcionar sus valiosos comentarios utilizando el siguiente feed..