Caratteristiche del sottaceto:
- È progettato principalmente per essere utilizzato per script Python.
- Viene utilizzato per salvare gli oggetti Python tra i processi.
- Tiene traccia di tutti gli oggetti serializzati e l'oggetto che è stato serializzato prima non verrà serializzato di nuovo.
- Può salvare e ripristinare l'istanza della classe in modo trasparente.
- Non è sicuro da usare. Quindi, non è meglio separare i dati da una fonte sconosciuta.
dump() per la serializzazione:
La funzione dump() viene utilizzata per convertire i dati dell'oggetto in un flusso di caratteri prima di salvarli in un file. Questa funzione può accettare tre argomenti. I primi due argomenti sono obbligatori e l'ultimo argomento è facoltativo. Il primo argomento accetta un oggetto dati che deve essere serializzato. Il secondo argomento prende l'oggetto del gestore di file di quel file in cui verranno archiviati i dati compressi. L'ultimo argomento prende il nome del protocollo.
Sintassi:
dump(oggetto_dati, oggetto_file, [protocollo])load() per la deserializzazione:
La funzione load() viene utilizzata per convertire i dati del flusso di caratteri dal file in un oggetto Python. Questa funzione contiene solo un argomento e l'oggetto gestore di file di file passa come valore dell'argomento da cui verranno recuperati i dati.
Sintassi:
carica(oggetto_file)Pickle un oggetto semplice da memorizzare in un file
Crea un file chiamato sottaceto.pi con il seguente script Python. Nello script seguente, un oggetto dati denominato dataObject viene dichiarato di memorizzare cinque nomi di lingua iterando il ciclo for. Successivamente, viene utilizzato il metodo open() per assegnare un gestore di file per la creazione di un file binario denominato le lingue. discarica() la funzione viene utilizzata qui per serializzare i dati di dataObject e conservalo in le lingue file. Se la serializzazione verrà eseguita correttamente, verrà stampato un messaggio "I dati sono serializzati".
# Importa il modulo pickleimportare sottaceti
# Dichiara l'oggetto per memorizzare i dati
dataObject = []
# Ripeti il ciclo for per 5 volte e prendi i nomi delle lingue
per n nell'intervallo (5):
raw = input('Inserisci il nome di una lingua :')
dataObject.append (grezzo)
# Apri un file per la scrittura dei dati
file_handler = open('lingue', 'wb')
# Scarica i dati dell'oggetto nel file
salamoia.dump(dataObject, file_handler)
# chiudi il gestore di file per rilasciare le risorse
file_handler.vicino()
# Stampa messaggio
print('I dati sono serializzati')
Produzione:
Dopo aver eseguito lo script, ci vorranno cinque nomi di lingua come input.
Rimuovi i dati da un file
decapare i dati è l'opposto del decapare i dati. Crea un file chiamato sottaceto2.pi con il seguente script Python. Qui, Aperto() viene utilizzato per aprire il file binario denominato le lingue, creato nell'esempio precedente. caricare() la funzione viene utilizzata per estrarre i dati dal file e memorizzarli nella variabile dataObject. Il prossimo, per loop viene utilizzato per iterare i dati dal from dataObject e stampa nel terminale.
# Importa il modulo pickleimportare sottaceti
# Apri un gestore di file per leggere un file da cui verranno caricati i dati
file_handler = open('lingue', 'rb')
# Carica i dati dal file dopo la deserializzazione
dataObject = sottaceto.load(file_handler)
# Chiudi il gestore di file
file_handler.vicino()
# Stampa messaggio
print('Dati dopo la deserializzazione')
# Iterare il ciclo per stampare i dati dopo la deserializzazione
per val in dataObject:
print('Il valore dei dati: ', val)
Produzione:
Il seguente output apparirà dopo aver eseguito lo script.
Pickle un oggetto di classe in un file
Nell'esempio seguente viene mostrato come un oggetto di classe può essere sottoposto a picking. Crea un file chiamato sottaceto3.pi con il seguente script. Qui, Dipendente la classe è dichiarata per assegnare tre valori di dati di un dipendente. Successivamente, un oggetto gestore di file denominato fileHandler viene creato per aprire un file per la scrittura. Dopo aver inizializzato l'oggetto classe, i dati vengono serializzati utilizzando discarica() funzione e memorizzata nel file denominato datiimpiegato. Se il file verrà creato correttamente, il messaggio, “I dati sono serializzati” stamperà.
# Importa modulo pickleimportare sottaceti
# Dichiara la classe impiegato per memorizzare il valore
classe Dipendente:
def __init__(self, nome, email, post):
se stesso.nome = nome
se stesso.e-mail = e-mail
se stesso.post = post
#Crea oggetto dipendente
empObject = Employee('Farheen', '[email protected]', 'Manager')
# Apri file per i dati del negozio
fileHandler = open('employeeData', 'wb')
# Salva i dati nel file
salamoia.dump(empObject, fileHandler)
# Chiudi il file
fileHandler.vicino()
# Stampa messaggio
print('I dati sono serializzati')
Produzione:
Il seguente output apparirà dopo aver eseguito lo script.
Rimuovi i dati in un oggetto di classe
Una classe con le proprietà e i metodi necessari richiederà di dichiarare per il recupero dei dati da un file a un oggetto di classe. Crea un file chiamato sottaceto4.pi con il seguente codice. Dipendente la classe è definita qui per recuperare i dati. fileObject la variabile viene utilizzata per aprire il file, datiimpiegato per leggere. Il prossimo, caricare() la funzione viene utilizzata per memorizzare i dati nell'oggetto classe dopo la deserializzazione. Schermo() funzione di Dipendente class viene chiamato per stampare i valori dei dati dell'oggetto classe.
# Importa modulo pickleimportare sottaceti
# Dichiara la classe dei dipendenti di leggere e stampare i dati da un file
classe Dipendente:
def __init__(self, nome, email, post):
se stesso.nome = nome
se stesso.e-mail = e-mail
se stesso.post = post
def display(auto):
print('Informazioni sui dipendenti:')
print('Nome :', self.nome)
print('Email :', self.e-mail)
print('Post :', self.inviare)
# Apri il file per la lettura
fileObject = open('employeeData', 'rb')
# Deseleziona i dati
impiegato = sottaceto.load(fileObject)
# Chiudi file
fileObject.vicino()
#stampa il dataframe
dipendente.Schermo()
Produzione:
Il seguente output apparirà dopo aver eseguito lo script.
Conclusione
Il modulo Pickle è una funzionalità utile di Python per la serializzazione e la deserializzazione dei dati. Dopo aver completato gli esempi mostrati in questo tutorial, il trasferimento dei dati da uno script python a un altro script python sarà più semplice per chiunque.