Python Language
Persistenza di Python
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
- Nessuna, vera e falsa
- numeri interi, numeri in virgola mobile, numeri complessi
- stringhe, byte, bytearrays
- tuple, elenchi, set e dizionari contenenti solo oggetti selezionabili
- funzioni definite al livello più alto di un modulo (usando def, non lambda)
- funzioni integrate definite al livello più alto di un modulo
- classi che sono definite al livello più alto di un modulo
- 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