Szukaj…


Składnia

  • pickle.dump (obj, plik, protokół = Brak, *, fix_imports = True)

  • pickle.load (plik, *, fix_imports = True, kodowanie = „ASCII”, błędy = „ścisłe”)

Parametry

Parametr Detale
obj marynowana reprezentacja obj do otwartego pliku obiektu pliku
protokół liczba całkowita, informuje wybieracza, aby używał podanego protokołu, 0 ASCII, 1 - stary format binarny
plik Argument pliku musi mieć metodę write () wb dla metody zrzutu i do ładowania metody read () rb

Wytrzymałość Pythona

Obiekty takie jak liczby, listy, słowniki, struktury zagnieżdżone i obiekty instancji klas znajdują się w pamięci komputera i są tracone po zakończeniu skryptu.

marynata przechowuje dane na stałe w osobnym pliku.

marynowana reprezentacja obiektu jest zawsze obiektem bajtowym we wszystkich przypadkach, więc należy otworzyć pliki wb aby zapisać dane i rb aby załadować dane z marynaty.

dane mogą być wyłączone dowolnego rodzaju, na przykład

data={'a':'some_value',
     'b':[9,4,7],
     'c':['some_str','another_str','spam','ham'],
     'd':{'key':'nested_dictionary'},
     } 

Magazyn danych

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

Załaduj dane

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']}

Można marynować następujące typy

  1. Brak, prawda i fałsz
  2. liczby całkowite, liczby zmiennoprzecinkowe, liczby zespolone
  3. ciągi, bajty, bajtary
  4. krotki, listy, zestawy i słowniki zawierające tylko obiekty do wyboru
  5. funkcje zdefiniowane na najwyższym poziomie modułu (przy użyciu def, a nie lambda)
  6. funkcje wbudowane zdefiniowane na najwyższym poziomie modułu
  7. klasy zdefiniowane na najwyższym poziomie modułu
  8. instancje takich klas, których dyktando lub wynik wywołania getstate ()

Narzędzie funkcyjne do zapisywania i ładowania

Zapisz dane do iz pliku

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow