Vlastnosti nálevu:
- Je určený hlavne na použitie pre skript v jazyku Python.
- Používa sa na ukladanie objektov pythonu medzi procesmi.
- Sleduje všetky serializované objekty a objekt, ktorý je predtým serializovaný, už nebude znova serializovaný.
- Môže transparentne uložiť a obnoviť inštanciu triedy.
- Používanie nie je bezpečné. Nie je teda lepšie odobrať dáta z neznámeho zdroja.
dump () pre serializáciu:
Funkcia dump () sa používa na prevod údajov objektu na prúd znakov pred uložením do súboru. Táto funkcia môže mať tri argumenty. Prvé dva argumenty sú povinné a posledný argument je voliteľný. Prvý argument berie dátový objekt, ktorý je potrebné serializovať. Druhý argument berie objekt obsluhy súborov tohto súboru, kde budú uložené údaje uložené. Posledný argument má názov protokolu.
Syntax:
výpis (data_object, file_object, [protokol])zaťaženie () pre deserializáciu:
Funkcia load () sa používa na prevod údajov toku znakov zo súboru na objekt Python. Táto funkcia obsahuje iba jeden argument a objekt obslužného programu súborov súboru prechádza ako hodnota argumentu, odkiaľ sa budú načítať údaje.
Syntax:
načítať (file_object)Nakrájajte jednoduchý objekt na uloženie do súboru
Vytvorte súbor s názvom uhorka1.py s nasledujúcim skriptom python. V nasledujúcom skripte je pomenovaný údajový objekt dataObject je deklarovaný na uloženie piatich názvov jazykov iteráciou cyklu for. Ďalej sa na priradenie obslužnej rutiny súboru pre vytvorenie binárneho súboru s názvom používa metóda open () jazykoch. výpis () funkcia sa tu používa na serializáciu údajov dataObject a uložte ho do jazykoch spis. Ak bude serializácia vykonaná správne, vytlačí sa správa „Dáta sú serializované“.
# Importujte nálevový moduldovoz nálevu
# Deklarujte objekt na ukladanie údajov
dataObject = []
# Opakujte cyklus for päťkrát a vezmite si názvy jazykov
pre n v rozsahu (5):
raw = input ('Zadajte názov jazyka:')
dataObject.pripojiť (surový)
# Otvorte súbor na zápis údajov
file_handler = open ('languages', 'wb')
# Vypíše údaje o objekte do súboru
nálev.výpis (dataObject, file_handler)
# zatvorte obslužný program súborov, aby sa uvoľnili zdroje
file_handler.Zavrieť()
# Tlačiť správu
tlač („Údaje sú serializované“)
Výkon:
Po spustení skriptu bude na vstup trvať päť názvov jazykov.
Zrušiť výber dát zo súboru
odobratie údajov je opakom moriacich údajov. Vytvorte súbor s názvom nálevu2.py s nasledujúcim skriptom python. Tu, otvorené() metóda sa používa na otvorenie binárneho súboru s názvom jazykoch, vytvorené v predchádzajúcom príklade. naložiť() Funkcia sa používa na odobratie dát 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 tlačiť v termináli.
# Importujte nálevový moduldovoz nálevu
# Otvorte obslužný program súboru na čítanie súboru, odkiaľ sa budú načítať údaje
file_handler = open ('languages', 'rb')
# Načítajte údaje zo súboru po deserializácii
dataObject = nálev.načítať (file_handler)
# Zatvorte obslužný program súborov
file_handler.Zavrieť()
# Tlačiť správu
tlač („Údaje po deserializácii“)
# Iteráciou slučky vytlačíte údaje po deserializácii
pre val v dataObject:
print ('Hodnota údajov:', val)
Výkon:
Po spustení skriptu sa zobrazí nasledujúci výstup.
Vyberte objekt triedy do súboru
Ako je možné nakladať objekt triedy, je uvedený v nasledujúcom príklade. Vytvorte súbor s názvom uhorka3.py s nasledujúcim skriptom. Tu, Zamestnanec trieda je deklarovaná na priradenie troch dátových hodnôt zamestnanca. Ďalej pomenovaný objekt obsluhy súborov fileHandler je vytvorený na otvorenie súboru na zápis. Po inicializácii objektu triedy sa údaje serializujú pomocou výpis () funkciu a uloží sa do súboru s názvom údaje o zamestnancovi. Ak sa súbor vytvorí správne, potom sa zobrazí správa, „Údaje sú serializované“ bude tlačiť.
# Importovať nálevový moduldovoz nálevu
# Deklarujte triedu zamestnancov, do ktorej sa má hodnota uložiť
zamestnanec triedy:
def __init __ (ja, meno, e-mail, príspevok):
ja.meno = meno
ja.email = email
ja.príspevok = príspevok
# Vytvorte objekt zamestnanca
empObject = Zamestnanec ('Farheen', '[e-mail chránený]', 'Manažér')
# Otvoriť súbor pre ukladanie dát
fileHandler = open ('employeeData', 'wb')
# Uložte údaje do súboru
nálev.výpis (empObject, fileHandler)
# Zatvorte súbor
fileHandler.Zavrieť()
# Tlačiť správu
tlač („Údaje sú serializované“)
Výkon:
Po spustení skriptu sa zobrazí nasledujúci výstup.
Zrušiť výber dát z objektu triedy
Trieda s potrebnými vlastnosťami a metódami bude vyžadovať deklaráciu pre načítanie údajov zo súboru do objektu triedy. Vytvorte súbor s názvom nálev4.py s nasledujúcim kódom. Zamestnanec je tu definovaná trieda na načítanie údajov. fileObject premenná slúži na otvorenie súboru, údaje o zamestnancovi na čítanie. Ďalšie, naložiť() funkcia slúži na uloženie údajov v objekte triedy po deserializácii. display () funkcia Zamestnanec triedy sa volá tlačiť údajové hodnoty objektu triedy.
# Importovať nálevový moduldovoz nálevu
# Deklarujte triedu zamestnancov na čítanie a tlač údajov zo súboru
zamestnanec triedy:
def __init __ (ja, meno, e-mail, príspevok):
ja.meno = meno
ja.email = email
ja.príspevok = príspevok
zobrazenie def (samo):
print ('Informácie o zamestnancovi:')
print ('Name:', self.názov)
tlačiť ('Email:', samostatne.e-mail)
print ('Príspevok:', self.príspevok)
# Otvorte súbor na čítanie
fileObject = open ('employeeData', 'rb')
# Rozbaľte dáta
zamestnanec = nálev.načítať (fileObject)
# Zavrieť súbor
fileObject.Zavrieť()
# vytlačiť dátový rámec
zamestnanec.display ()
Výkon:
Po spustení skriptu sa zobrazí nasledujúci výstup.
Záver
Modul Pickle je užitočnou vlastnosťou pythonu na serializáciu a deserializáciu údajov. Po dokončení príkladov uvedených v tomto tutoriále bude prenos dát z jedného skriptu pythonu do druhého skriptu pythonu ľahší pre kohokoľvek.