Deweloperzy Pythona chcą zapisywać obiekty danych, takie jak listy, słowniki, krotki i klasy, w pliku. W tej sytuacji do gry wchodzi moduł Python pickle.
Pickle to wbudowany moduł Pythona, który służy do serializacji i deserializacji struktury obiektu Pythona. Serializacja to proces konwersji obiektu Pythona na strumień bajtów (0 i 1). Znany jest również jako marynowanie. Celem procesu wytrawiania jest zapisanie obiektu Pythona na dysku w postaci strumienia bajtów. Wytrawiony obiekt Pythona może zostać z powrotem przekształcony w obiekt Pythona, a proces ten jest znany jako unpickling lub deserializacja.
Wytrawianie w Pythonie jest przydatne, gdy musimy zapisać stan obiektu Pythona i wykonać zadanie analizy danych. Na przykład, gdy pracujemy z algorytmami głębokiego uczenia i chcemy je wykorzystać na później. W takim stanie możemy przechowywać go na dysku do późniejszego wykorzystania. Jednak trawienie nie jest dobrym rozwiązaniem, gdy pracujemy z różnymi językami programowania. Marynowany obiekt nie może być rozmarynowany w żadnym innym języku programowania, ponieważ nie obsługuje wielu języków. Obiekt, który jest marynowany w Pythonie, może być również odmarynowany tylko w Pythonie. To samo dotyczy różnych wersji Pythona; obiekt, który jest marynowany w określonej wersji Pythona, może nie być poprawnie odmarynowany w innej wersji. Aby wykonać proces marynowania i rozmarynowania, najpierw musimy zaimportować moduł marynowania w naszym skrypcie Pythona.
W tym artykule na przykładach nauczymy się używać modułu marynowania Pythona do wykonywania marynowania i rozmarynowania.
Przykłady trawienia w Pythonie
Zobaczmy kilka przykładów, aby zrozumieć proces trawienia w Pythonie. Przed wykonaniem operacji trawienia musimy otworzyć plik w trybie zapisu. Plik musi być otwarty w trybie binarnym, ponieważ marynowany obiekt jest przechowywany w strumieniu bajtów. dump() jest funkcją modułu marynującego, która jest używana do tworzenia marynaty. Wymaga dwóch argumentów, i.mi., obiekt Pythona, który ma być marynowany oraz plik, w którym marynowany obiekt zostanie zapisany.
Przykład 1: Marynowanie listy
W podanym przykładzie stworzyliśmy listę liczb i zamarynowaliśmy ją za pomocą marynaty.funkcja dump().
#importowanie modułu marynatimportuj marynatę
#deklarowanie listy numerów
lista_liczb = [1,2,3,4,5,6]
#wybieranie listy i przechowywanie w pliku
listfile = open('listPickle','wb')
marynata.dump(num_list,listfile)
plik listy.blisko()
print("Marynarka z listy została pomyślnie utworzona.")
Wynik
Dane wyjściowe pokazują, że lista została pomyślnie zamarynowana.
Przykład 2: Marynowanie słownika
Zajmijmy się teraz marynowaniem obiektu słownika Pythona. Słownik studencki jest tworzony i marynowany za pomocą marynaty.funkcja dump().
#importowanie modułu marynatimportuj marynatę
#deklarowanie słownika studenckiego
std_dict = 'imię':'Jan','wiek':22,'klasa':'BS'
#wybieranie słownika i przechowywanie w pliku
dictfile = open('dictPickle','wb')
marynata.dump(std_dict,dictfile)
dyktować.blisko()
print("Słownik jest marynowany pomyślnie.")
Wynik
Dane wyjściowe pokazują, że słownik został pomyślnie zamarynowany.
Przykład 3: Marynowanie krotki
Teraz zamarynujmy obiekt krotki Pythona. Obiekt krotki jest tworzony i marynowany za pomocą marynowania.funkcja dump().
#importowanie modułu marynatimportuj marynatę
#deklarowanie krotki
moja_krotka = ((1,1),(2,2),(3,3),(4,4))
#wybieranie słownika i przechowywanie w pliku
krotka = open('tuplePickle','wb')
marynata.dump(moja_krotka,plik krotki)
krotka.blisko()
print("Krótka została zamarynowana pomyślnie.")
Wynik
Dane wyjściowe pokazują, że obiekt krotki został pomyślnie zamarynowany.
W porządku! Chodziło o marynowanie różnych obiektów Pythona.
Przykłady rozbierania w Pythonie
Zobaczmy teraz kilka przykładów procesu rozbierania w Pythonie. Odmarynujemy wszystkie obiekty Pythona, które zamarynowaliśmy w poprzednich przykładach. W procesie rozmarynowania marynowany plik jest otwierany w trybie odczytu. Ogórek.Funkcja load() służy do rozmarynowania obiektu Pythona. Obiekt pliku jest przekazywany jako argument do pikle.funkcja load().
Przykład 1: Rozbierz listę
Zamarynowany obiekt listy jest niemarynowany i przypisywany do nowego obiektu listy.
#importowanie modułu marynatimportuj marynatę
#otwieranie pliku listPickle w nastroju do czytania
pickle_in = open('listPickle','rb')
#rozpakowanie listy i przypisanie do obiektu listy
num_list = marynata.load(pickle_in)
drukuj(num_list)
Wynik
Przykład 2: Rozbierz słownik
Zamarynowany obiekt słownika studenckiego jest odmarynowywany i przypisywany do nowego obiektu słownika.
#importowanie modułu marynatimportuj marynatę
#otwieranie pliku dictPickle w nastroju do czytania
pickle_in = open('dictPickle','rb')
#odzyskiwanie dyktatu i przypisywanie do obiektu słownika
std_dict = marynata.load(pickle_in)
drukuj(std_dict)
Wynik
Przykład 3: Rozbierz krotkęOutput
Marynowany obiekt krotki jest rozmarynowy i przypisywany do nowego obiektu krotki.
#importowanie modułu marynatimportuj marynatę
#otwieranie pliku krotkiPickle w nastroju do czytania
pickle_in = open('tuplePickle','rb')
#rozbieranie krotki i przypisywanie do obiektu słownika
std_dict = marynata.load(pickle_in)
drukuj(std_dict)
Wynik
Wniosek
Pickle to wbudowany moduł Pythona, który służy do wykonywania operacji serializacji i deserializacji. Serializacja i deserializacja są również znane odpowiednio jako marynowanie i roztrawianie. Poprzez marynowanie możemy przechowywać obiekt Pythona w postaci strumienia bajtów, a później go pobrać. Proces rozmarynowania odnosi się do przekształcenia marynowanego obiektu w obiekt Pythona. W tym artykule wyjaśniono proces marynowania i wytrawiania na przykładach.