Python Language
Python Persistence
Sök…
Syntax
pickle.dump (obj, fil, protokoll = inget, *, fix_imports = sant)
pickle.load (fil, *, fix_imports = Sant, kodning = "ASCII", fel = "strikt")
parametrar
Parameter | detaljer |
---|---|
obj | inlagd representation av obj till objektfilen med öppen fil |
protokoll | ett heltal, berättar pickleren att använda det givna protokollet, 0 ASCII, 1 - gammalt binärt format |
fil | Filargumentet måste ha en skriva () -metod wb för dumpningsmetod och för att ladda läs () -metoden rb |
Python Persistence
Objekt som nummer, listor, ordböcker, kapslade strukturer och klassinstansobjekt lever i din dators minne och går förlorade så snart skriptet slutar.
pickle lagrar data kontinuerligt i en separat fil.
pickled representation av ett objekt är alltid ett bytesobjekt i alla fall så man måste öppna filer i wb
att lagra data och rb
att ladda data från pickle.
uppgifterna kan vara av alla slag, till exempel,
data={'a':'some_value',
'b':[9,4,7],
'c':['some_str','another_str','spam','ham'],
'd':{'key':'nested_dictionary'},
}
Lagra data
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
Ladda data
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']}
Följande typer kan betas
- Inget, sant och falskt
- heltal, flytande punktnummer, komplexa siffror
- strängar, byte, bytrearys
- tupler, listor, uppsättningar och ordböcker som endast innehåller picklable objekt
- funktioner definierade på den översta nivån i en modul (med def, inte lambda)
- inbyggda funktioner definierade på den högsta nivån i en modul
- klasser som definieras på den högsta nivån i en modul
- fall av sådana klasser vars dikt eller resultatet av att ringa getstate ()
Funktionsverktyg för att spara och ladda
Spara data till och från fil
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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow