Czym są pickling i unpickling w Pythonie?

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

  1. Importowanie modułu pickle: Moduł pickle w Pythonie umożliwia serializację i deserializację obiektów.
  2. Definiowanie danych do serializacji: Tworzymy prosty słownik, który potem będziemy chcieli zapisać.
  3. Serializacja i zapis do pliku: Otwieramy plik w trybie binarnym do zapisu ("wb") i używamy pickle.dump(), aby zserializować i zapisać nasz słownik do pliku.
  4. Deserializacja i odczyt z pliku: Otwieramy plik w trybie binarnym do odczytu ("rb") i używamy pickle.load(), aby deserializować i odczytać nasz słownik z pliku.
  5. 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.

Scroll to Top