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

  1. Inget, sant och falskt
  2. heltal, flytande punktnummer, komplexa siffror
  3. strängar, byte, bytrearys
  4. tupler, listor, uppsättningar och ordböcker som endast innehåller picklable objekt
  5. funktioner definierade på den översta nivån i en modul (med def, inte lambda)
  6. inbyggda funktioner definierade på den högsta nivån i en modul
  7. klasser som definieras på den högsta nivån i en modul
  8. 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