Pyton

Jak zamarynować obiekty w Pythonie

Jak zamarynować obiekty w Pythonie
Wszelkie dane można serializować i deserializować w Pythonie za pomocą modułu JSON i Picklele. Przed przechowywaniem jakichkolwiek danych w pliku, obiekty Pythona są serializowane za pomocą modułu pickle. Za pomocą tego modułu obiekty Pythona są konwertowane na strumienie znaków. Gdy użytkownik chce pobrać dane z pliku w celu użycia innego skryptu Pythona, dane z pliku są deserializowane przez moduł pickle. Funkcje modułu pickle i sposób wykorzystania tego modułu w skrypcie Pythona do serializacji i deserializacji są opisane w tym samouczku.

Funkcje marynaty:

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 z tego pliku, w którym będą przechowywane paczkowane dane. Ostatni argument przyjmuje nazwę protokołu.

Składnia:

dump(data_object, 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 pliku przekazuje jako wartość argumentu, z którego zostaną pobrane dane.

Składnia:

load(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 przebiegnie prawidłowo, zostanie wydrukowany komunikat „Dane są serializowane”.

# Zaimportuj moduł marynowania
importuj marynatę
# Zadeklaruj obiekt do przechowywania danych
obiekt danych = []
# Powtórz pętlę for 5 razy i weź nazwy języków
dla n w zakresie(5):
raw = input('Wprowadź nazwę języka  :')
obiekt danych.dołącz (surowe)
# Otwórz plik do zapisu danych
file_handler = open('języki', 'wb')
# Zrzuć dane obiektu do pliku
marynata.dump(dataObject, file_handler)
# zamknij obsługę plików, aby zwolnić zasoby
obsługa_plików.blisko()
# Drukuj wiadomość
print('Dane są serializowane')

Wynik:

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 marynata2.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. Kolejny, dla pętla służy do iteracji danych z obiekt danych i wydrukuj w terminalu.

# Zaimportuj moduł marynowania
importuj marynatę
# Otwórz program obsługi plików do odczytu pliku, z którego zostaną załadowane dane
file_handler = open('języki', 'rb')
# Załaduj dane z pliku po deserializacji
obiekt danych = marynata.load(plik_obsługi)
# Zamknij program obsługi plików
obsługa_plików.blisko()
# Drukuj wiadomość
print('Dane po deserializacji')
# Wykonaj iterację pętli, aby wydrukować dane po deserializacji
dla val w dataObject:
print('Wartość danych: ', val)

Wynik:

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Przenieś obiekt klasy do pliku

W poniższym przykładzie pokazano, w jaki sposób można zamarynować obiekt klasy. Utwórz plik o nazwie ogórek3.py z następującym skryptem. Tutaj, Pracownik klasa 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 pisania. 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, komunikat, „Dane są serializowane” wydrukuje.

# Importuj moduł marynowania
importuj marynatę
# Zadeklaruj klasę pracownika do przechowywania wartości
klasa Pracownik:
def __init__(self, name, email, post):
samego siebie.imię = imię
samego siebie.e-mail = e-mail
samego siebie.post = post
 
#Utwórz obiekt pracownika
empObject = Employee('Farheen', '[email chroniony]', 'Menedżer')
# Otwórz plik do przechowywania danych
fileHandler = open('employeeData', 'wb')
# Zapisz dane do pliku
marynata.dump(empObject, fileHandler)
# Zamknij plik
fileHandler.blisko()
# Drukuj wiadomość
print('Dane są serializowane')

Wynik:

Następujące 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 marynata4.py z następującym kodem. Pracownik tutaj zdefiniowana jest klasa do pobierania danych. fileObject zmienna służy do otwierania pliku, dane pracownika do czytania. Kolejny, Załaduj() funkcja służy do przechowywania danych w obiekcie klasy po deserializacji. pokaz() funkcja Pracownik klasa jest wywoływana, aby wydrukować wartości danych obiektu klasy.

# Importuj moduł marynowania
importuj marynatę
# Zadeklaruj klasę pracownika do odczytywania i drukowania danych z pliku
klasa Pracownik:
def __init__(self, name, email, post):
samego siebie.imię = imię
samego siebie.e-mail = e-mail
samego siebie.post = post
def wyświetlacz (własny):
print('Informacje o pracowniku:')
print('Nazwa  :', self.Nazwa)
print('E-mail  :', self.e-mail)
print('Opublikuj:', self.Poczta)
 
# Otwórz plik do czytania
fileObject = open('employeeData', 'rb')
# Odbierz dane
pracownik = marynata.load(fileObject)
# Zamknąć plik
fileObject.blisko()
#wydrukuj ramkę danych
pracownik.pokaz()

Wynik:

Następujące 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.

Gry Jak przechwytywać i przesyłać strumieniowo sesję gry w systemie Linux
Jak przechwytywać i przesyłać strumieniowo sesję gry w systemie Linux
W przeszłości granie w gry było uważane tylko za hobby, ale z czasem branża gier odnotowała ogromny wzrost pod względem technologii i liczby graczy. P...
Gry Najlepsze gry do grania ze śledzeniem rąk
Najlepsze gry do grania ze śledzeniem rąk
Oculus Quest niedawno wprowadził świetny pomysł śledzenia rąk bez kontrolerów. Przy stale rosnącej liczbie gier i działań, które wspierają zarówno for...
Gry Jak wyświetlić nakładkę OSD w pełnoekranowych aplikacjach i grach dla systemu Linux?
Jak wyświetlić nakładkę OSD w pełnoekranowych aplikacjach i grach dla systemu Linux?
Granie w gry pełnoekranowe lub korzystanie z aplikacji w trybie pełnoekranowym bez rozpraszania uwagi może odciąć Cię od istotnych informacji systemow...