Ako nakladať objekty v Pythone

How Pickle Objects Python



Akékoľvek údaje je možné serializovať a deserializovať v Pythone pomocou modulu JSON a Pickle. Pred uložením akýchkoľvek údajov do súboru sa objekty Pythonu serializujú pomocou modulu nakladania. Objekty Pythonu sa pomocou tohto modulu konvertujú na toky znakov. Keď chce používateľ načítať údaje súboru pomocou iného skriptu pythonu, údaje súboru sú deserializované modulom nakladania. V tomto návode sú popísané vlastnosti modulu nakladania a spôsob, akým môže byť tento modul použitý v skripte pythonu na serializáciu a deserializáciu.

Vlastnosti uhorky:

  • Je navrhnutý hlavne na použitie pre skript Python.
  • Používa sa na ukladanie objektov pythonu medzi procesmi.
  • Sleduje všetky serializované objekty a objekt, ktorý bol serializovaný predtým, sa nebude serializovať znova.
  • Transparentne môže uložiť a obnoviť inštanciu triedy.
  • Použitie nie je bezpečné. Nie je preto lepšie vyberať údaje z neznámeho zdroja.

dump () pre serializáciu:

Funkcia dump () sa používa na konverziu údajov o objektoch na tok znakov pred uložením do súboru. Táto funkcia môže obsahovať tri argumenty. Prvé dva argumenty sú povinné a posledný argument je voliteľný. Prvý argument preberá dátový objekt, ktorý je potrebné serializovať. Druhý argument berie objekt obsluhy súborov tohto súboru, do ktorého budú uložené zabalené údaje. Posledný argument preberá názov protokolu.







Syntax:



skládka(data_object,file_object, [protokol])

load () pre deserializáciu:

Funkcia load () sa používa na konverziu údajov toku znakov zo súboru na objekt Python. Táto funkcia obsahuje iba jeden argument a objekt obsluhy súboru súboru prechádza ako hodnota argumentu, z ktorého budú údaje načítané.



Syntax:





naložiť(file_object)

Nakladajte jednoduchý objekt, ktorý chcete uložiť do súboru

Vytvorte súbor s názvom nakladačka1.py s nasledujúcim python skriptom. V nasledujúcom skripte je dátový objekt s názvom dataObject je deklarovaný na uloženie piatich názvov jazykov iteráciou cyklu for. Ďalej sa metóda open () použije na priradenie obsluhy súborov k vytvoreniu binárneho súboru s názvom jazykov. skládka () Tu sa používa funkcia na serializáciu údajov súboru dataObject a uložte ho do jazykov súbor. Ak sa serializácia vykoná správne, vytlačí sa správa s názvom Údaje sú serializované.

# Importujte modul nakladačky
import nálev

# Deklarujte objekt na ukladanie údajov
dataObject= []

# Opakujte slučku for 5krát a vezmite názvy jazykov
prenv rozsah(5):
surový= vstup(„Zadajte názov jazyka:“)

dataObject.priložiť(surový)

# Otvorte súbor na zápis údajov
file_handler= otvorené('jazyky', 'wb')

# Uložte údaje objektu do súboru
nálev.skládka(dataObject,file_handler)

# Zavrite obslužný program súboru a uvoľnite zdroje
file_handler.Zavrieť()

# Vytlačte správu
vytlačiť(„Údaje sú serializované“)

Výkon:



Po spustení skriptu bude ako vstup trvať päť názvov jazykov.

Zrušiť výber údajov zo súboru

vyberanie údajov je opakom morenia údajov. Vytvorte súbor s názvom pickle2.py s nasledujúcim python skriptom. Tu, otvorené() metóda sa používa na otvorenie binárneho súboru s názvom jazykov , vytvorený v predchádzajúcom príklade. naložiť() funkcia sa používa na vybratie údajov zo súboru a ich uloženie do premennej dataObject . Ďalšie, pre slučka sa používa na iteráciu údajov z dataObject a vytlačte v termináli.

# Importujte modul nakladačky
import nálev

# Otvorte obslužný program súboru na čítanie súboru, z ktorého sa načítajú údaje
file_handler= otvorené('jazyky', 'rb')

# Po deserializácii načítajte údaje zo súboru
dataObject= nálev.naložiť(file_handler)

# Zatvorte obslužný program súboru
file_handler.Zavrieť()

# Vytlačte správu
vytlačiť(„Údaje po deserializácii“)

# Opakovaním slučky vytlačte údaje po deserializácii
prehodvdataObject:
vytlačiť(„Hodnota údajov:“,hod)

Výkon:

Po spustení skriptu sa zobrazí nasledujúci výstup.

Nakladajte objekt triedy do súboru

Ako je možné nakladať predmet triedy, ukazuje nasledujúci príklad. Vytvorte súbor s názvom nakladačka3.py s nasledujúcim skriptom. Tu, Zamestnanec trieda je deklarovaná na priradenie troch údajových hodnôt zamestnanca. Ďalej objekt obsluhy súboru s názvom fileHandler je vytvorený na otvorenie súboru na zápis. Po inicializácii objektu triedy sa údaje serializujú pomocou skládka () funkciu uloženú v súbore s názvom data zamestnanca . Ak sa súbor vytvorí správne, zobrazí sa správa, Dáta sú serializované vytlačí.

# Importujte modul nakladačky
import nálev

# Deklarujte triedu zamestnancov, aby uložila hodnotu
triedaZamestnanec:
def __init__(seba,názov, e -mail,príspevok):
seba.názov =názov
seba.e -mail = e -mail
seba.príspevok =príspevok

#Vytvorte objekt zamestnanca
empObject=Zamestnanec('Farheen', '[email protected]', „Manažér“)

# Otvorte súbor pre údaje obchodu
fileHandler= otvorené(„employeeData“, 'wb')

# Uložte údaje do súboru
nálev.skládka(empObject,fileHandler)

# Zatvorte súbor
fileHandler.Zavrieť()

# Vytlačte správu
vytlačiť(„Údaje sú serializované“)

Výkon:

Po spustení skriptu sa zobrazí nasledujúci výstup.

Zrušiť výber údajov do objektu triedy

Trieda s potrebnými vlastnosťami a metódami bude vyžadovať deklaráciu na načítanie údajov zo súboru do objektu triedy. Vytvorte súbor s názvom pickle4.py s nasledujúcim kódom. Zamestnanec Na načítanie údajov je tu definovaná trieda. fileObject premenná sa používa na otvorenie súboru, data zamestnanca na čítanie. Ďalšie, naložiť() funkcia sa používa na uloženie údajov do objektu triedy po deserializácii. displej () funkcia Zamestnanec trieda sa volá na vytlačenie dátových hodnôt objektu triedy.

# Importujte modul nakladačky
import nálev

# Deklarujte triedu zamestnancov, aby čítala a tlačila údaje zo súboru
triedaZamestnanec:
def __init__(seba,názov, e -mail,príspevok):
seba.názov =názov
seba.e -mail = e -mail
seba.príspevok =príspevok

defdisplej(seba):
vytlačiť(„Informácie o zamestnancovi:“)
vytlačiť('Názov :', seba.názov)
vytlačiť('E -mail:', seba.e -mail)
vytlačiť('Príspevok:', seba.príspevok)

# Otvorte súbor na čítanie
fileObject= otvorené(„employeeData“, 'rb')

# Zvoľte vybratie údajov
zamestnanec= nálev.naložiť(fileObject)

# Zatvorte súbor
fileObject.Zavrieť()

#vytlačte dátový rámec
zamestnanec.displej()

Výkon:

Po spustení skriptu sa zobrazí nasledujúci výstup.

Záver

Modul naberania je užitočnou funkciou pythonu na serializáciu a deserializáciu údajov. Po dokončení príkladov uvedených v tomto návode bude prenos údajov z jedného skriptu pythonu do druhého skriptu pythonu pre každého jednoduchšie.