Python

Kako kisati predmete v Pythonu

Kako kisati predmete v Pythonu
Vse podatke je mogoče v Pythonu serializirati in deserializirati z uporabo modulov JSON in Pickle. Pred shranjevanjem kakršnih koli podatkov v datoteko se predmeti Python serializirajo z uporabo modula kisline. Predmeti Python se s pomočjo tega modula pretvorijo v tokove znakov. Ko uporabnik želi pridobiti podatke iz datoteke za uporabo drugega skripta python, se podatki datoteke z modulom kisline deserializirajo. V tej vadnici so opisane značilnosti pickle modula in kako ga lahko uporabljamo v skriptu python za serializacijo in deserializacijo.

Značilnosti kumarice:

dump () za serializacijo:

funkcija dump () se uporablja za pretvorbo podatkov predmeta v tok znakov pred shranjevanjem v datoteko. Ta funkcija ima lahko tri argumente. Prva dva argumenta sta obvezna, zadnji argument pa neobvezen. Prvi argument zavzame podatkovni objekt, ki ga je treba serializirati. Drugi argument zavzame objekt za obdelavo datotek te datoteke, kjer bodo shranjeni zbrani podatki. Zadnji argument ima ime protokola.

Sintaksa:

dump (data_object, file_object, [protokol])

load () za deserializacijo:

load () se uporablja za pretvorbo podatkov toka znakov iz datoteke v objekt Python. Ta funkcija vsebuje samo en argument in objekt datoteke, ki obdeluje datoteko, preide kot vrednost argumenta, od koder bodo podatki pridobljeni.

Sintaksa:

naloži (objekt_datoteke)

Pickle preprost predmet za shranjevanje v datoteki

Ustvarite datoteko z imenom kumarica1.py z naslednjim skriptom python.  V naslednjem skriptu je imenovan podatkovni objekt dataObject je razglašeno za shranjevanje pet jezikovnih imen s ponovitvijo zanke for. Nato se z metodo open () dodeli obdelovalec datotek za ustvarjanje binarne datoteke z imenom jezikov. dump () tukaj se uporablja za serializacijo podatkov dataObject in ga shranite v jezikov mapa.  Če bo serializacija izvedena pravilno, se bo natisnilo sporočilo »Podatki so serializirani«.

# Uvozite modul kumarice
uvozna kumarica
# Prijavite objekt za shranjevanje podatkov
dataObject = []
# Petkrat ponovite for zanko in vzemite imena jezikov
za n v območju (5):
raw = input ('Vnesite ime jezika:')
dataObject.priloži (surovo)
# Odprite datoteko za zapisovanje podatkov
file_handler = odprto ('jeziki', 'wb')
# Podatke predmeta izbrišite v datoteko
kumarica.dump (dataObject, file_handler)
# zaprite vodnik datotek, da sprostite vire
file_handler.zapri ()
# Natisni sporočilo
print ('Podatki so serializirani')

Izhod:

Po zagonu skripta bo za vnos vneseno pet jezikovnih imen.

Odstranite podatke iz datoteke

odstranjevanje podatkov je nasprotno od luženja podatkov. Ustvarite datoteko z imenom kumarica2.py z naslednjim skriptom python. Tukaj, odprto() metoda se uporablja za odpiranje binarne datoteke z imenom jezikov, ustvarjen v prejšnjem primeru. obremenitev () funkcija se uporablja za odstranjevanje podatkov iz datoteke in njihovo shranjevanje v spremenljivko dataObject. Naslednji, za zanka se uporablja za ponovitev podatkov iz dataObject in natisnite v terminalu.

# Uvozite modul kumarice
uvozna kumarica
# Odprite upravljalnik datotek za branje datoteke, od koder se naložijo podatki
file_handler = odprto ('jeziki', 'rb')
# Naložite podatke iz datoteke po deserializaciji
dataObject = kumarica.naloži (file_handler)
# Zaprite upravljalnik datotek
file_handler.zapri ()
# Natisni sporočilo
print ('Podatki po deserializaciji')
# Ponovite zanko za tiskanje podatkov po deserializaciji
za val v dataObject:
print ('Vrednost podatkov:', val)

Izhod:

Po zagonu skripta se prikaže naslednji izhod.

Izberite predmet predmeta v datoteki

V nadaljevanju je prikazano, kako je mogoče predmet razreda uničiti. Ustvarite datoteko z imenom kumarica3.py z naslednjim skriptom. Tukaj, Zaposleni razred razglasi za dodelitev treh podatkovnih vrednosti zaposlenega. Nato se imenuje objekt obdelovalca datotek fileHandler je ustvarjen za odpiranje datoteke za pisanje. Po inicializaciji predmeta razreda se podatki serializirajo z uporabo dump () funkcija in shranjena v datoteki z imenom datadata. Če bo datoteka pravilno ustvarila sporočilo, "Podatki so serializirani" bo natisnil.

# Uvozi modul kumarice
uvozna kumarica
# Razglasite razred zaposlenih, da bo shranil vrednost
razred Zaposlen:
def __init __ (jaz, ime, e-pošta, pošta):
sebe.ime = ime
sebe.e-pošta = e-pošta
sebe.post = objava
 
# Ustvari objekt zaposlenega
empObject = Zaposleni ('Farheen', '[email protected]', 'Manager')
# Odprite datoteko za shranjevanje podatkov
fileHandler = odprto ('workerData', 'wb')
# Podatke shranite v datoteko
kumarica.dump (empObject, fileHandler)
# Zaprite datoteko
fileHandler.zapri ()
# Natisni sporočilo
print ('Podatki so serializirani')

Izhod:

Po zagonu skripta se prikaže naslednji izhod.

Odstranite podatke v predmetu razreda

Razred s potrebnimi lastnostmi in metodami bo zahteval izjavo za pridobivanje podatkov iz datoteke v predmetu razreda. Ustvarite datoteko z imenom kumarica4.py z naslednjo kodo. Zaposleni Za pridobitev podatkov je tukaj definiran razred. fileObject spremenljivka se uporablja za odpiranje datoteke, datadata za branje. Naslednji, obremenitev () funkcija se uporablja za shranjevanje podatkov v predmetu razreda po deserializaciji. zaslon () funkcija Zaposleni class se pokliče za tiskanje podatkovnih vrednosti predmeta razreda.

# Uvozi modul kumarice
uvozna kumarica
# Razglasite razred zaposlenih za branje in tiskanje podatkov iz datoteke
razred Zaposlen:
def __init __ (jaz, ime, e-pošta, pošta):
sebe.ime = ime
sebe.e-pošta = e-pošta
sebe.post = objava
def prikaz (samo):
print ('Podatki o zaposlenem:')
print ('Ime:', samo.ime)
print ('E-pošta:', samo.E-naslov)
print ('Objava:', samo.objava)
 
# Odprite datoteko za branje
fileObject = odprto ('workerData', 'rb')
# Odstranite podatke
zaposleni = kumarica.naloži (fileObject)
# Zapri datoteko
fileObject.zapri ()
#print podatkovni okvir
zaposleni.zaslon ()

Izhod:

Po zagonu skripta se prikaže naslednji izhod.

Zaključek

Modul Pickle je uporabna lastnost pythona za serializacijo in deserializacijo podatkov. Po zaključku primerov, prikazanih v tej vadnici, bo prenos podatkov iz enega skripta python v drug skript python lažji za vsakogar.

Najboljši Linux Distros za igre na srečo v letu 2021
Operacijski sistem Linux je daleč od prvotnega, preprostega, strežniškega videza. Ta OS se je v zadnjih letih izjemno izboljšal in se je zdaj razvil v...
Kako zajeti in pretakati svojo igralno sejo v Linuxu
V preteklosti je bilo igranje iger le hobi, sčasoma pa je igralniška industrija zabeležila veliko rast glede tehnologije in števila igralcev. Občinstv...
Najboljše igre z ročnim sledenjem
Oculus Quest je pred kratkim predstavil odlično idejo ročnega sledenja brez krmilnikov. Z vedno večjim številom iger in dejavnosti, ki izvajajo podpor...