Buscar..


Sintaxis

  • pickle.dump (obj, file, protocol = None, *, fix_imports = True)

  • pickle.load (archivo, *, fix_imports = True, encoding = "ASCII", errores = "strict")

Parámetros

Parámetro Detalles
obj Representación encurtida de obj al archivo de objeto de archivo abierto
protocolo un entero, le dice al pickler que use el protocolo dado, 0 -ASCII, 1 - formato binario antiguo
expediente El argumento del archivo debe tener un método write () wb para el método dump y para cargar el método rb read ()

Persistencia Python

Los objetos como números, listas, diccionarios, estructuras anidadas y objetos de instancia de clase viven en la memoria de su computadora y se pierden tan pronto como termina el script.

pickle almacena los datos de forma persistente en un archivo separado.

La representación de un objeto encurtido es siempre un objeto de bytes en todos los casos, por lo que uno debe abrir archivos en wb para almacenar datos y rb para cargar datos desde pickle.

Los datos pueden estar fuera de cualquier tipo, por ejemplo,

data={'a':'some_value',
     'b':[9,4,7],
     'c':['some_str','another_str','spam','ham'],
     'd':{'key':'nested_dictionary'},
     } 

Almacenamiento de datos

import pickle
file=open('filename','wb')  #file object in binary write mode
pickle.dump(data,file)      #dump the data in the file object
file.close()                #close the file to write into the file

Cargar datos

import pickle
file=open('filename','rb')  #file object in binary read mode
data=pickle.load(file)      #load the data back
file.close()

>>>data
{'b': [9, 4, 7], 'a': 'some_value', 'd': {'key': 'nested_dictionary'},
 'c': ['some_str', 'another_str', 'spam', 'ham']}

Los siguientes tipos pueden ser decapados

  1. Ninguno, verdadero y falso
  2. enteros, números de punto flotante, números complejos
  3. cuerdas, bytes, bytearrays
  4. Tuplas, listas, conjuntos y diccionarios que contienen solo objetos extraíbles
  5. Funciones definidas en el nivel superior de un módulo (usando def, no lambda)
  6. Funciones incorporadas definidas en el nivel superior de un módulo
  7. Clases que se definen en el nivel superior de un módulo.
  8. instancias de dichas clases cuyo dict o el resultado de llamar a getstate ()

Función de utilidad para guardar y cargar.

Guardar datos en y desde archivo

import pickle
def save(filename,object):
    file=open(filename,'wb')
    pickle.dump(object,file)
    file.close()

def load(filename):
    file=open(filename,'rb')
    object=pickle.load(file)
    file.close()
    return object


>>>list_object=[1,1,2,3,5,8,'a','e','i','o','u']
>>>save(list_file,list_object)
>>>new_list=load(list_file)
>>>new_list
[1, 1, 2, 3, 5, 8, 'a', 'e', 'i', 'o', 'u'


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow