Krajta

Jak nakládat objekty v Pythonu

Jak nakládat objekty v Pythonu
Jakákoli data lze v Pythonu serializovat a deserializovat pomocí JSON a modulu Pickle. Před uložením jakýchkoli dat do souboru jsou objekty Pythonu serializovány pomocí pickle modulu. Objekty Pythonu se pomocí tohoto modulu převádějí na proudy znaků. Když chce uživatel načíst data souboru pro použití jiného python skriptu, pak jsou data souboru deserializována modulem pickle. Vlastnosti modulu na nakládání a jak lze tento modul použít ve skriptu pythonu pro serializaci a deserializaci, jsou popsány v tomto kurzu.

Vlastnosti nálevu:

dump () pro serializaci:

Funkce dump () se používá k převodu dat objektu na proud znaků před uložením do souboru. Tato funkce může trvat tři argumenty. První dva argumenty jsou povinné a poslední argument je volitelný. První argument přebírá datový objekt, který je třeba serializovat. Druhý argument převezme objekt obsluhy souboru tohoto souboru, kde budou uložená data uložena. Poslední argument přebírá název protokolu.

Syntax:

výpis (data_object, file_object, [protokol])

load () pro deserializaci:

Funkce load () se používá k převodu datového proudu znaků ze souboru na objekt Pythonu. Tato funkce obsahuje pouze jeden argument a objekt obslužné rutiny souboru souboru se předává jako hodnota argumentu, odkud budou data načtena.

Syntax:

načíst (file_object)

Nakládejte jednoduchý objekt, který chcete uložit do souboru

Vytvořte soubor s názvem okurka1.py s následujícím skriptem pythonu.  V následujícím skriptu datový objekt s názvem dataObject je deklarováno k uložení pěti jazykových jmen iterací smyčky for. Dále se k přiřazení obslužné rutiny souboru pro vytvoření binárního souboru s názvem používá metoda open () jazyky. výpis () funkce se zde používá k serializaci dat dataObject a uložte jej do jazyky soubor.  Pokud bude serializace provedena správně, vytiskne se zpráva „Data jsou serializována“.

# Importujte nakládací modul
importovat nálev
# Deklarujte objekt k ukládání dat
dataObject = []
# Opakujte smyčku for pětkrát a vezměte názvy jazyků
pro n v rozsahu (5):
raw = input ('Zadejte název jazyka:')
dataObject.připojit (raw)
# Otevřete soubor pro zápis dat
file_handler = open ('languages', 'wb')
# Vypíše data objektu do souboru
lák.výpis (dataObject, file_handler)
# zavřete obslužnou rutinu souboru a uvolněte prostředky
file_handler.zavřít()
# Tisknout zprávu
tisk („Data jsou serializována“)

Výstup:

Po spuštění skriptu bude jako vstup použito pět jazykových jmen.

Zrušit výběr dat ze souboru

odtržení dat je opakem moření dat. Vytvořte soubor s názvem okurka2.py s následujícím skriptem pythonu. Tady, otevřeno() metoda se používá k otevření binárního souboru s názvem jazyky, vytvořené v předchozím příkladu. zatížení() funkce slouží k odtržení dat ze souboru a jejich uložení do proměnné dataObject. další, pro smyčka se používá k iteraci dat z dataObject a vytiskněte v terminálu.

# Importujte nakládací modul
importovat nálev
# Otevřete obslužný program pro čtení souboru, ze kterého se budou načítat data
file_handler = open ('languages', 'rb')
# Načtěte data ze souboru po deserializaci
dataObject = lák.načíst (file_handler)
# Zavřete obslužný program souborů
file_handler.zavřít()
# Tisknout zprávu
tisk („Data po deserializaci“)
# Iterací smyčky vytisknete data po deserializaci
pro val v dataObject:
print ('Hodnota dat:', val)

Výstup:

Po spuštění skriptu se zobrazí následující výstup.

Nakládejte objekt třídy do souboru

Jak lze objekt třídy nakládat, je uveden v následujícím příkladu. Vytvořte soubor s názvem okurka3.py s následujícím skriptem. Tady, Zaměstnanec třída je deklarována pro přiřazení tří datových hodnot zaměstnance. Dále objekt obslužné rutiny souborů s názvem fileHandler je vytvořen k otevření souboru pro zápis. Po inicializaci objektu třídy jsou data serializována pomocí výpis () funkce a uloženy v souboru s názvem údaje o zaměstnanci. Pokud se soubor vytvoří správně, zobrazí se zpráva, "Data jsou serializována" vytiskne.

# Importovat nakládací modul
importovat nálev
# Deklarujte třídu zaměstnanců pro uložení hodnoty
zaměstnanec třídy:
def __init __ (já, jméno, e-mail, příspěvek):
já.jméno = jméno
já.email = email
já.příspěvek = příspěvek
 
# Vytvořte objekt zaměstnance
empObject = Zaměstnanec ('Farheen', '[email protected]', 'Manažer')
# Otevřít soubor pro uložení dat
fileHandler = open ('employeeData', 'wb')
# Uložte data do souboru
lák.výpis (empObject, fileHandler)
# Zavřete soubor
fileHandler.zavřít()
# Tisknout zprávu
tisk („Data jsou serializována“)

Výstup:

Po spuštění skriptu se zobrazí následující výstup.

Zrušte výběr dat do objektu třídy

Třída s nezbytnými vlastnostmi a metodami bude vyžadovat deklaraci pro načtení dat ze souboru do objektu třídy. Vytvořte soubor s názvem okurka4.py s následujícím kódem. Zaměstnanec je zde definována třída pro načtení dat. fileObject proměnná se používá k otevření souboru, údaje o zaměstnanci pro čtení. další, zatížení() funkce slouží k uložení dat v objektu třídy po deserializaci. Zobrazit() funkce Zaměstnanec třída je volána k tisku datových hodnot objektu třídy.

# Importovat nakládací modul
importovat nálev
# Deklarujte třídu zaměstnanců ke čtení a tisku dat ze souboru
zaměstnanec třídy:
def __init __ (já, jméno, e-mail, příspěvek):
já.jméno = jméno
já.email = email
já.příspěvek = příspěvek
zobrazení def (vlastní):
print ('Informace o zaměstnanci:')
print ('Name:', self.název)
print ('Email:', self.e-mailem)
print ('Post:', self.pošta)
 
# Otevřete soubor ke čtení
fileObject = open ('employeeData', 'rb')
# Vyzvedněte data
zaměstnanec = lák.načíst (fileObject)
# Zavřít soubor
fileObject.zavřít()
# vytiskněte datový rámec
zaměstnanec.Zobrazit()

Výstup:

Po spuštění skriptu se zobrazí následující výstup.

Závěr

Pickle modul je užitečná vlastnost pythonu pro serializaci a deserializaci dat. Po dokončení příkladů uvedených v tomto kurzu bude přenos dat z jednoho skriptu pythonu do jiného skriptu pythonu snadnější pro kohokoli.

Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
The Battle for Wesnoth je jednou z nejpopulárnějších strategických her s otevřeným zdrojovým kódem, které si v tuto chvíli můžete zahrát. Tato hra se ...
Hry 0 A.D. Tutorial
0 A.D. Tutorial
Z mnoha strategických her venku je 0 A.D. dokáže vyniknout jako komplexní titul a velmi hluboká, taktická hra, přestože je otevřeným zdrojem. Vývoj hr...