Ricerca…


Sintassi

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

  • pickle.load (file, *, fix_imports = True, encoding = "ASCII", errors = "strict")

Parametri

Parametro Dettagli
obj rappresentazione decapitata di obj nel file oggetto file aperto
protocollo un intero, dice al pickler di usare il protocollo dato, 0 -ASCII, 1 - vecchio formato binario
file L'argomento del file deve avere un metodo write () wb per il metodo dump e per caricare il metodo read () rb

Persistenza di Python

Oggetti come numeri, elenchi, dizionari, strutture nidificate e oggetti istanza di classe vivono nella memoria del computer e vengono persi non appena termina lo script.

pickle memorizza i dati in modo persistente in un file separato.

la rappresentazione decapitata di un oggetto è sempre un oggetto byte in tutti i casi, quindi è necessario aprire i file in wb per memorizzare i dati e rb per caricare i dati da pickle.

i dati potrebbero essere di qualsiasi tipo, ad esempio

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

Immagazzina dati

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

Caricare dati

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']}

I seguenti tipi possono essere decapati

  1. Nessuna, vera e falsa
  2. numeri interi, numeri in virgola mobile, numeri complessi
  3. stringhe, byte, bytearrays
  4. tuple, elenchi, set e dizionari contenenti solo oggetti selezionabili
  5. funzioni definite al livello più alto di un modulo (usando def, non lambda)
  6. funzioni integrate definite al livello più alto di un modulo
  7. classi che sono definite al livello più alto di un modulo
  8. istanze di tali classi il cui dict o il risultato di chiamare getstate ()

Funzione di utilità per salvare e caricare

Salva dati da e verso file

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow