Jak używać Pickle do zapisywania obiektów w Pythonie?
Paul Taylor/Getty Images
Pickle, który jest domyślnie częścią biblioteki Pythona, jest ważnym modułem, gdy potrzebujesz trwałości między sesjami użytkowników. Jako moduł, pickle zapewnia zapisywanie obiektów Pythona między procesami.
Czy programujesz dla Baza danych , gra, forum lub inna aplikacja, która musi zapisywać informacje między sesjami, pickle jest przydatna do zapisywania identyfikatorów i ustawień. Moduł pickle może przechowywać takie rzeczy, jak typy danych, takie jak wartości logiczne, łańcuchy i tablice bajtów, listy, słowniki, funkcje i inne.
Notatka: Pojęcie trawienia jest również znane jako serializacja, porządkowanie i spłaszczanie. Jednak cel jest zawsze ten sam — zapisać obiekt do pliku w celu późniejszego odzyskania. Pickling osiąga to poprzez zapisanie obiektu jako jednego długiego strumienia bajtów.
Przykładowy kod Pickle w Pythonie
Aby zapisać obiekt do pliku, użyj kodu w następującej składni:
|_+_|
Oto jak wygląda rzeczywisty przykład:
|_+_|Ten fragment zapisuje zawartość obiekt_pi do pliku program obsługi file_pi , który z kolei jest powiązany z plikiem nazwa_pliku_pi.obj w katalogu wykonania.
Aby przywrócić wartość obiektu do pamięci, wczytaj obiekt z pliku. Zakładając, że marynata nie została jeszcze zaimportowana do użytku, zacznij od jej zaimportowania:
|_+_|Poniższy kod przywraca wartość pi:
|_+_|
Obiekt jest wtedy gotowy do ponownego użycia, tym razem jako obiekt_pi2 . Możesz oczywiście ponownie użyć oryginalnych nazw, jeśli wolisz. W tym przykładzie dla jasności użyto odrębnych nazw.
Rzeczy do zapamiętania o marynowaniu
Pamiętaj o tych rzeczach podczas korzystania z modułu marynowania:
- Protokół marynowania jest specyficzny dla Pythona – nie ma gwarancji, że będzie kompatybilny z różnymi językami. Najprawdopodobniej nie możesz przesłać informacji, aby były przydatne w Perlu, PHP, Javie lub innych językach.
- Nie ma również gwarancji kompatybilności między różnymi wersjami Pythona. Niezgodność istnieje, ponieważ nie każda struktura danych Pythona może być serializowana przez moduł.
- Domyślnie używana jest najnowsza wersja protokołu marynowania. Pozostaje w ten sposób, chyba że ręcznie go zmienisz.
Wskazówka: Dowiedz się również jak używać półki do zapisywania obiektów w Pythonie dla innej metody utrzymania ciągłości obiektu.