Funkcje marynaty:
- Jest przeznaczony głównie do użycia w skrypcie Pythona.
- Służy do zapisywania obiektów Pythona pomiędzy procesami.
- Śledzi wszystkie serializowane obiekty, a obiekt, który jest wcześniej serializowany, nie będzie ponownie serializowany.
- Może w sposób przezroczysty zapisywać i przywracać instancję klasy.
- Nie jest bezpieczny w użyciu. Nie lepiej więc wydobywać dane z nieznanego źródła.
dump() dla serializacji:
Funkcja dump() służy do konwersji danych obiektu na strumień znaków przed zapisaniem w pliku. Ta funkcja może przyjmować trzy argumenty. Pierwsze dwa argumenty są obowiązkowe, a ostatni argument opcjonalny. Pierwszy argument przyjmuje obiekt danych, który wymaga serializacji. Drugi argument przyjmuje obiekt obsługi pliku tego pliku, w którym będą przechowywane paczkowane dane. Ostatni argument przyjmuje nazwę protokołu.
Składnia:
wysypisko(obiekt_danych,file_object, [protokół])
load() dla deserializacji:
Funkcja load() służy do konwersji danych strumienia znaków z pliku na obiekt Pythona. Ta funkcja zawiera tylko jeden argument, a obiekt obsługi pliku plik przekazuje jako wartość argumentu, z którego zostaną pobrane dane.
Składnia:
Załaduj(file_object)
Marynowanie prostego obiektu do przechowywania w pliku
Utwórz plik o nazwie marynata1.py z następującym skryptem Pythona. W poniższym skrypcie obiekt danych o nazwie obiekt danych zadeklarowano przechowywanie pięciu nazw języków przez iterację pętli for. Następnie metoda open() służy do przypisania obsługi pliku do utworzenia pliku binarnego o nazwie Języki. wysypisko() funkcja jest tutaj używana do serializacji danych z obiekt danych i przechowuj go w Języki plik. Jeśli serializacja zostanie wykonana prawidłowo, zostanie wydrukowany komunikat Dane są serializowane.
# Zaimportuj moduł marynowaniaimport marynata
# Zadeklaruj obiekt do przechowywania danych
obiekt danych= []
# Powtórz pętlę for 5 razy i weź nazwy języków
dlanw zasięg(5):
surowe= Wejście('Wprowadź nazwę języka:')
obiekt danych.dodać(surowe)
# Otwórz plik do zapisu danych
obsługa_plików= otwarty('Języki', „wb”)
# Zrzuć dane obiektu do pliku
marynata.wysypisko(obiekt danych,obsługa_plików)
# zamknij program obsługi plików, aby zwolnić zasoby
obsługa_plików.blisko()
# Drukuj wiadomość
wydrukować(„Dane są serializowane”)
Wyjście:
Po uruchomieniu skryptu, jako dane wejściowe, przyjmie pięć nazw języków.
Odbierz dane z pliku
roztrawianie danych jest przeciwieństwem marynowania danych. Utwórz plik o nazwie ogórek2.py z następującym skryptem Pythona. Tutaj, otwarty() Metoda służy do otwierania pliku binarnego o nazwie Języki , utworzony w poprzednim przykładzie. Załaduj() funkcja służy do rozpakowywania danych z pliku i przechowywania ich w zmiennej obiekt danych . Następny, dla pętla służy do iteracji danych z obiekt danych i wydrukuj w terminalu.
# Zaimportuj moduł marynowaniaimport marynata
# Otwórz program obsługi plików do odczytu pliku, z którego zostaną załadowane dane
obsługa_plików= otwarty('Języki', „rb”)
# Załaduj dane z pliku po deserializacji
obiekt danych= marynata.Załaduj(obsługa_plików)
# Zamknij program obsługi plików
obsługa_plików.blisko()
# Drukuj wiadomość
wydrukować(„Dane po deserializacji”)
# Wykonaj iterację pętli, aby wydrukować dane po deserializacji
dlagodzinawobiekt danych:
wydrukować('Wartość danych: ',godzina)
Wyjście:
Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu.
Przenieś obiekt klasy do pliku
Sposób marynowania obiektu klasy pokazano w poniższym przykładzie. Utwórz plik o nazwie ogórek3.py z następującym skryptem. Tutaj, Pracownik class jest zadeklarowana do przypisania trzech wartości danych pracownika. Następnie obiekt obsługi plików o nazwie fileHandler jest tworzony, aby otworzyć plik do zapisu. Po zainicjowaniu obiektu klasy dane są serializowane przy użyciu wysypisko() funkcja i przechowywane w pliku o nazwie dane pracownika . Jeśli plik utworzy się poprawnie to komunikat, Dane są serializowane wydrukuje.
# Importuj moduł marynowaniaimport marynata
# Zadeklaruj klasę pracownika do przechowywania wartości
klasaPracownik:
definitywnie __w tym__(samego siebie,Nazwa, e-mail,Poczta):
samego siebie.Nazwa =Nazwa
samego siebie.e-mail = e-mail
samego siebie.Poczta =Poczta
#Utwórz obiekt pracownika
empObject=Pracownik(„Farheen”, ' [e-mail chroniony] ', 'Menedżer')
# Otwórz plik do przechowywania danych
fileHandler= otwarty(„Dane pracownika”, „wb”)
# Zapisz dane do pliku
marynata.wysypisko(empObject,fileHandler)
# Zamknij plik
FileHandler.blisko()
# Drukuj wiadomość
wydrukować(„Dane są serializowane”)
Wyjście:
Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu.
Odbierz dane do obiektu klasy
Klasa z niezbędnymi właściwościami i metodami będzie wymagała deklaracji w celu pobrania danych z pliku do obiektu klasy. Utwórz plik o nazwie ogórek4.py z następującym kodem. Pracownik klasa jest zdefiniowana tutaj, aby pobrać dane. fileObject zmienna służy do otwierania pliku, dane pracownika do czytania. Następny, Załaduj() funkcja służy do przechowywania danych w obiekcie klasy po deserializacji. wyświetlacz() funkcja Pracownik class jest wywoływana, aby wydrukować wartości danych obiektu klasy.
# Importuj moduł marynowaniaimport marynata
# Zadeklaruj klasę pracownika do odczytywania i drukowania danych z pliku
klasaPracownik:
definitywnie __w tym__(samego siebie,Nazwa, e-mail,Poczta):
samego siebie.Nazwa =Nazwa
samego siebie.e-mail = e-mail
samego siebie.Poczta =Poczta
definitywniewyświetlacz(samego siebie):
wydrukować(„Informacje o pracownikach:”)
wydrukować('Nazwa :', samego siebie.Nazwa)
wydrukować('E-mail :', samego siebie.e-mail)
wydrukować('Poczta :', samego siebie.Poczta)
# Otwórz plik do czytania
fileObject= otwarty(„Dane pracownika”, „rb”)
# Rozbierz dane
pracownik= marynata.Załaduj(fileObject)
# Zamknij plik
fileObject.blisko()
#wydrukuj ramkę danych
pracownik.wyświetlacz()
Wyjście:
Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu.
Wniosek
Moduł Pickle jest przydatną funkcją Pythona do serializacji i deserializacji danych. Po wykonaniu przykładów pokazanych w tym samouczku, przesyłanie danych z jednego skryptu Pythona do innego skryptu Pythona będzie łatwiejsze dla każdego.