W Pythonie, pickling
i unpickling
to procesy używane do serializacji i deserializacji obiektów. Serializacja (pickling) to proces przekształcania obiektu w strumień bajtów, aby można było go zapisać na dysku lub przesłać przez sieć. Deserializacja (unpickling) to proces odwrotny, polegający na przekształcaniu strumienia bajtów z powrotem na obiekt Pythona.
Przykład kodu
W poniższym przykładzie stworzymy prosty słownik, który następnie zserializujemy do pliku za pomocą pickling, a potem odtworzymy (unpickle) z tego pliku.
import pickle
# Definiujemy prosty słownik, który będziemy serializować
data = {"name": "John", "age": 30, "city": "New York"}
# Serializacja (pickling) danych i zapis do pliku
with open("data.pickle", "wb") as file:
# Zapisujemy (serializujemy) słownik do pliku
pickle.dump(data, file)
# Deserializacja (unpickling) danych z pliku
with open("data.pickle", "rb") as file:
# Odczytujemy (deserializujemy) słownik z pliku
loaded_data = pickle.load(file)
# Wyświetlamy wczytane dane, aby sprawdzić, czy proces
# deserializacji przebiegł pomyślnie
print(loaded_data)
# Powinno wyświetlić: {'name': 'John', 'age': 30, 'city': 'New York'}
Wyjaśnienia
- Importowanie modułu pickle: Moduł
pickle
w Pythonie umożliwia serializację i deserializację obiektów. - Definiowanie danych do serializacji: Tworzymy prosty słownik, który potem będziemy chcieli zapisać.
- Serializacja i zapis do pliku: Otwieramy plik w trybie binarnym do zapisu (
"wb"
) i używamypickle.dump()
, aby zserializować i zapisać nasz słownik do pliku. - Deserializacja i odczyt z pliku: Otwieramy plik w trybie binarnym do odczytu (
"rb"
) i używamypickle.load()
, aby deserializować i odczytać nasz słownik z pliku. - Wyświetlanie wczytanych danych: Sprawdzamy, czy deserializacja przebiegła pomyślnie przez wyświetlenie danych.
Podsumowanie
Pickling i unpickling to potężne narzędzia w Pythonie, umożliwiające łatwe zapisywanie stanu obiektów na dysku i odtwarzanie go później. Choć są bardzo użyteczne, należy stosować je ostrożnie, zwłaszcza przy odczycie danych z niesprawdzonych źródeł, ze względu na potencjalne ryzyko bezpieczeństwa.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs Python od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.