Python Language
Python Persistentie
Zoeken…
Syntaxis
pickle.dump (obj, file, protocol = None, *, fix_imports = True)
pickle.load (file, *, fix_imports = True, encoding = "ASCII", errors = "strict")
parameters
Parameter | Details |
---|---|
obj | ingelegde weergave van obj naar het open bestand objectbestand |
protocol | een geheel getal, vertelt de kiezer het gegeven protocol, 0 -ASCII, 1 - oud binair formaat te gebruiken |
het dossier | Het bestandargument moet de methode write () wb voor de dump- methode en voor het laden van de methode read () rb |
Python Persistentie
Objecten zoals getallen, lijsten, woordenboeken, geneste structuren en klasse-instantieobjecten leven in het geheugen van uw computer en gaan verloren zodra het script eindigt.
augurk slaat gegevens permanent op in een afzonderlijk bestand.
ingekorte weergave van een object is altijd een bytes-object, dus men moet bestanden in wb
openen om gegevens op te slaan en rb
om gegevens uit augurk te laden.
de gegevens kunnen van elke soort zijn, bijvoorbeeld
data={'a':'some_value',
'b':[9,4,7],
'c':['some_str','another_str','spam','ham'],
'd':{'key':'nested_dictionary'},
}
Gegevens bewaren
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
Gegevens laden
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']}
De volgende soorten kunnen worden ingelegd
- Geen, waar en onwaar
- gehele getallen, drijvende-kommagetallen, complexe getallen
- tekenreeksen, bytes, bytearrays
- tupels, lijsten, sets en woordenboeken die alleen pickbare objecten bevatten
- functies gedefinieerd op het hoogste niveau van een module (gebruik def, geen lambda)
- ingebouwde functies gedefinieerd op het hoogste niveau van een module
- klassen die op het hoogste niveau van een module zijn gedefinieerd
- instanties van dergelijke klassen waarvan het dictaat of het resultaat van het aanroepen van getstate ()
Functiehulpprogramma voor opslaan en laden
Gegevens opslaan van en naar bestand
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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow