Python

Hvordan plukke gjenstander i Python

Hvordan plukke gjenstander i Python
Alle data kan serieiseres og deserialiseres i Python ved hjelp av JSON og Pickle-modulen. Før du lagrer data i en fil, serialiseres Python-objekter ved hjelp av pickle-modul. Python-objekter konverteres til tegnstrømmer ved hjelp av denne modulen. Når brukeren ønsker å hente dataene til filen for å bruke et annet python-skript, blir dataene til filen deserialisert av pickle-modul. Funksjonene til pickle-modulen og hvordan denne modulen kan brukes i python-skript for serialisering og deserialisering er beskrevet i denne veiledningen.

Pickle Funksjoner:

dump () for serialisering:

dump () -funksjonen brukes til å konvertere objektdataene til en tegnstrøm før de lagres i en fil. Denne funksjonen kan ta tre argumenter. De to første argumentene er obligatoriske, og det siste argumentet er valgfritt. Det første argumentet tar et dataobjekt som må serieiseres. Det andre argumentet tar filhåndteringsobjektet til den filen der dataene blir lagret. Det siste argumentet tar protokollnavnet.

Syntaks:

dump (data_object, file_object, [protocol])

load () for deserialisering:

load () -funksjonen brukes til å konvertere tegnstrømdata fra filen til et Python-objekt. Denne funksjonen inneholder bare ett argument, og filhåndteringsobjektet til filen passerer som argumentverdien hvorfra dataene blir hentet.

Syntaks:

last (file_object)

Pickle et enkelt objekt å lagre i en fil

Opprett en fil med navnet sylteagurk1.py med følgende python-skript.  I det følgende skriptet, et dataobjekt som heter dataObject er erklært å lagre fem språknavn ved å gjenta for loop. Deretter brukes open () -metoden til å tilordne en filbehandler for å lage en binær fil med navnet språk. dump () funksjonen brukes her for å serieisere dataene til dataObject og lagre den i språk fil.  Hvis serialiseringen vil bli utført riktig, vil en melding, "Data er serialisert", skrives ut.

# Importer pickle-modulen
importere sylteagurk
# Erklær objektet for å lagre data
dataObject = []
# Iterer for-sløyfen fem ganger og ta språknavn
for n i rekkevidde (5):
raw = input ('Skriv inn et språknavn:')
dataObject.legge til (rå)
# Åpne en fil for å skrive data
file_handler = åpen ('språk', 'wb')
# Dump dataene til objektet i filen
sylteagurk.dump (dataObject, file_handler)
# lukk filbehandleren for å frigjøre ressursene
filhåndterer.Lukk()
# Skriv ut melding
skriv ut ('Data serialiseres')

Produksjon:

Etter at du har kjørt skriptet, tar det fem språknavn som input.

Fjern data fra en fil

unpickling data er det motsatte av pickling data. Opprett en fil med navnet pickle2.py med følgende python-skript. Her, åpen() metoden brukes til å åpne den binære filen som heter språk, opprettet i forrige eksempel. laste() funksjonen brukes til å fjerne dataene fra filen og lagre den i variabelen dataObject. Neste, til loop brukes iterere dataene fra dataObject og skriv ut i terminalen.

# Importer pickle-modulen
importere sylteagurk
# Åpne en filbehandler for å lese en fil der dataene vil lastes inn
file_handler = åpen ('språk', 'rb')
# Last inn dataene fra filen etter deserialisering
dataObject = sylteagurk.last (filhåndterer)
# Lukk filbehandleren
filhåndterer.Lukk()
# Skriv ut melding
skriv ut ('Data etter deserialisering')
# Iterer løkken for å skrive ut dataene etter deserialisering
for val in dataObject:
print ('Dataverdien:', val)

Produksjon:

Følgende utdata vises etter kjøring av skriptet.

Pickle et klasseobjekt til en fil

Hvordan et klasseobjekt kan bli syltet vises i følgende eksempel. Opprett en fil med navnet sylteagurk3.py med følgende manus. Her, Ansatt klasse er erklært for å tilordne tre dataverdier for en ansatt. Deretter et filbehandlerobjekt som heter fileHandler er opprettet for å åpne en fil for skriving. Etter initialisering av klasseobjektet serialiseres data ved hjelp av dump () funksjon og lagres i filen som heter ansattData. Hvis filen vil opprettes riktig, så meldingen, “Data serialiseres” vil skrive ut.

# Importer syltemodul
importere sylteagurk
# Erklær ansattklassen for å lagre verdien
klasse Ansatt:
def __init __ (selv, navn, e-post, post):
selv-.navn = navn
selv-.e-post = e-post
selv-.innlegg = innlegg
 
#Lag medarbeiderobjekt
empObject = Ansatt ('Farheen', '[email protected]', 'Manager')
# Åpne filen for lagringsdata
fileHandler = åpen ('employeeData', 'wb')
# Lagre dataene i filen
sylteagurk.dump (empObject, fileHandler)
# Lukk filen
fileHandler.Lukk()
# Skriv ut melding
skriv ut ('Data er seriell')

Produksjon:

Følgende utdata vises etter kjøring av skriptet.

Fjern data til et klasseobjekt

En klasse med nødvendige egenskaper og metoder vil kreve å erklære for å hente dataene fra en fil til et klasseobjekt. Opprett en fil med navnet pickle4.py med følgende kode. Ansatt klasse er definert her for å hente dataene. fileObject variabel brukes til å åpne filen, ansattData for lesing. Neste, laste() funksjonen brukes til å lagre dataene i klasseobjektet etter deserialisering. vise() funksjon av Ansatt klasse kalles for å skrive ut dataverdiene til klasseobjektet.

# Importer syltemodul
importere sylteagurk
# Erklare ansattklasse for å lese og skrive ut data fra en fil
klasse Ansatt:
def __init __ (selv, navn, e-post, post):
selv-.navn = navn
selv-.e-post = e-post
selv-.innlegg = innlegg
def display (selv):
print ('Medarbeiderinformasjon:')
utskrift ('Navn:', selvtill.Navn)
print ('E-post:', selv.e-post)
print ('Post:', selv.post)
 
# Åpne filen for lesing
fileObject = åpen ('employeeData', 'rb')
# Fjern markeringen av dataene
ansatt = sylteagurk.last (fileObject)
# Lukk filen
fileObject.Lukk()
# skriv ut datarammen
ansatt.vise()

Produksjon:

Følgende utdata vises etter kjøring av skriptet.

Konklusjon

Pickle-modul er en nyttig funksjon i python for dataserialisering og deserialisering. Etter å ha fullført eksemplene vist i denne opplæringen, vil dataoverføringen fra ett pythonscript til et annet pythonscript være lettere for alle.

Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...
Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...
Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...