In questo tutorial discuteremo dell’esempio di Python Pickle. Nel nostro tutorial precedente, abbiamo discusso di Multiprocessing in Python.
Pickle in Python
Python Pickle viene utilizzato per serializzare
e deserializzare
una struttura di oggetti Python. Qualsiasi oggetto in Python può essere picklato in modo che possa essere salvato su disco. Inizialmente Python pickle serializza l’oggetto e poi converte l’oggetto in uno stream di caratteri in modo che questo stream di caratteri contenga tutte le informazioni necessarie per ricostruire l’oggetto in un altro script Python. Nota che il modulo pickle non è sicuro contro dati errati o maliziosamente costruiti secondo la documentazione. Quindi, non deserializzare dati ricevuti da una fonte non attendibile o non autenticata.
Python Pickle dump
In questa sezione, impareremo come memorizzare dati usando Python pickle. Per farlo, dobbiamo importare prima il modulo pickle. Quindi usare la funzione pickle.dump()
per memorizzare i dati dell’oggetto nel file. La funzione pickle.dump()
prende 3 argomenti. Il primo argomento è l’oggetto che si desidera memorizzare. Il secondo argomento è l’oggetto file ottenuto aprendo il file desiderato in modalità write-binary
(wb). E il terzo argomento è l’argomento chiave-valore. Questo argomento definisce il protocollo. Ci sono due tipi di protocollo – pickle.HIGHEST_PROTOCOL e pickle.DEFAULT_PROTOCOL. Vedere il codice di esempio per sapere come memorizzare dati usando pickle.
import pickle
# prendere l'input dell'utente per ottenere la quantità di dati
number_of_data = int(input('Enter the number of data : '))
data = []
# prendere l'input dei dati
for i in range(number_of_data):
raw = input('Enter data '+str(i)+' : ')
data.append(raw)
# aprire un file, dove si desidera memorizzare i dati
file = open('important', 'wb')
# memorizzare le informazioni su quel file
pickle.dump(data, file)
# chiudere il file
file.close()
Il seguente programma ti chiederà di inserire alcuni input. Nel mio caso, era così.
Caricamento di Python Pickle
Per recuperare i dati picklati, i passaggi sono piuttosto semplici. Devi usare la funzione pickle.load()
per farlo. L’argomento principale della funzione di caricamento di pickle è l’oggetto file che ottieni aprendo il file in modalità di lettura binaria (rb). Semplice! Vero? Scriviamo il codice per recuperare i dati che abbiamo picklato usando il codice di dump di pickle. Guarda il seguente codice per capire.
import pickle
# apri un file, dove hai memorizzato i dati picklati
file = open('important', 'rb')
# scarica le informazioni in quel file
data = pickle.load(file)
# chiudi il file
file.close()
print('Showing the pickled data:')
cnt = 0
for item in data:
print('The data ', cnt, ' is : ', item)
cnt += 1
Il risultato sarà il seguente:
Showing the pickled data:
The data 0 is : 123
The data 1 is : abc
The data 2 is : !@#$
Esempio di Pickle Python
I made a short video showing execution of python pickle example programs – first to store data into file and then to load and print it. As you can see that the file created by python pickle dump is a binary file and shows garbage characters in the text editor.
Note importanti su Pickle Python
Pochi punti importanti sul modulo pickle di Python sono:
- Il protocollo pickle è specifico di Python – non è garantito che sia compatibile tra linguaggi. Ciò significa che probabilmente non puoi trasferire le informazioni per renderle utili in altri linguaggi di programmazione.
- Non c’è nemmeno alcuna garanzia di compatibilità tra diverse versioni di Python perché non ogni struttura dati di Python può essere serializzata dal modulo.
- La versione più recente del protocollo pickle viene utilizzata per impostazione predefinita a meno che non venga cambiata manualmente.
- Ultimo ma non meno importante, il modulo pickle non è sicuro contro dati errati o maliziosamente costruiti secondo la documentazione.
Quindi, questo è tutto riguardo all’esempio di pickle di Python. Spero che tu abbia capito bene. Per ulteriori domande, utilizza la sezione dei commenti. 🙂 Riferimento: Documentazione Ufficiale
Source:
https://www.digitalocean.com/community/tutorials/python-pickle-example