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

  1. Geen, waar en onwaar
  2. gehele getallen, drijvende-kommagetallen, complexe getallen
  3. tekenreeksen, bytes, bytearrays
  4. tupels, lijsten, sets en woordenboeken die alleen pickbare objecten bevatten
  5. functies gedefinieerd op het hoogste niveau van een module (gebruik def, geen lambda)
  6. ingebouwde functies gedefinieerd op het hoogste niveau van een module
  7. klassen die op het hoogste niveau van een module zijn gedefinieerd
  8. 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