8. diel - Binárne súbory a serializácia v Pythone
V predchádzajúcej lekcii, Zápis a čítanie XML súborov v Pythone, sme sa venovali práci s XML súbormi.
V tomto kurze sme si už uviedli niekoľko možností, ako uložiť dáta (prípadne rovno inštancie) do súborov. Či už išlo o formát CSV alebo XML, vždy sme vo finále pracovali s textovými súbormi. Dnes si v lekcii ukážeme alternatívny spôsob uloženia dát a preberieme jeho výhody a nevýhody.
Binárne súbory
Doteraz sme teda vždy dátové typy previedli na textový reťazec a ten uložili do textového súboru. Pri opätovnom čítaní dát sme ich museli zo stringu potom naparsovať späť na pôvodný dátový typ. Do súboru je možné ale ukladať dáta aj v inej, než textovej podobe. Hovoríme o tzv. binárnych súboroch.
Ako vieme, premenné sú uložené v operačnej pamäti počítača. Fyzicky
si pamäť môžeme predstaviť ako naozaj dlhý rad "priehradiek", kde v
každej priehradke môže byť nula alebo jednotka. Jednotlivé prvky v
priehradkách sú teda bity. S tými sa väčšinou nepracuje jednotlivo, ale
rovno po ôsmich, tzv. bajtoch (1 bajt = 8 bitov). Každý objekt z Pythonu
zaberá v pamäti určitý počet bajtov. Je jedno, či je v čísle uložená
hodnota 0 alebo 1.000.000, stále má v pamäti
vyhradené tie isté bajty. Ak budeme chcieť premennú typu int
uložiť do súboru, máme
...koniec náhľadu článku...
Pokračuj ďalej
Došiel si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Obmedzená ponuka: Nauč sa všetko a ušetri
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
V tutoriáli si predstavíme binárne súbory a knižnicu/modul pickle. Naučíme sa serializovať a deserializovať binárne objekty v Pythone.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.