19. diel - Práca so súbormi DocX v Pythone - Analýza blokov
V predchádzajúcej lekcii, Práca so súbormi DocX v Pythone - Čítanie a štruktúra sme si popísali základy XML
štruktúry DocX dokumentov. Ukázali sme si tiež, ako pomocou knižnice
python-docx
pristupovať k odsekom, run
elementom,
obrázkom a tabuľkám.
V dnešnom tutoriále práce so súbormi v Pythone dokončíme tému formátu DocX. Zameriame sa na najväčší problém, ktorým je čítanie obrázkov. Vypracujeme tiež funkcie na načítanie celého dokumentu.
Analýza a čítanie súboru vo formáte DocX
Začneme tým, že si pripravíme funkciu, ktorá bude analyzovať obsah
načítaného odseku. Pomenujeme ju projdi_bloky()
. Tu odbočíme a
povieme si niečo o blokoch. Blok je všeobecný pojem, ktorý
sa používa na opis rôznych štrukturálnych jednotiek formátu
.docx
. V XML štruktúre dokumentu sa môžu objaviť rôzne typy
blokov. Bloky môžu byť reprezentované rôznymi XML elementmi, ako sú
<w:p>
(odsek), <w:tbl>
(tabuľka),
<w:sdt>
(obsah ovládacích prvkov) atď.
Analýza blokov
Naša funkcia teda ako argument berie koreňový objekt dokumentu. Jej cieľom je postupne prejsť všetky jeho bloky a rozhodnúť, o aký typ sa bloku jedná. Vieme, že vo všeobecnosti existuje viacero typov blokov, my pre jednoduchosť budeme ale rozlišovať iba odseky a tabuľky. Kód vyzerá nasledovne:
...koniec náhľadu článku...
Pokračuj ďalej
Minul 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 tomto tutoriále práce sa DocX súbory v Pythone zostavíme celý program na analýzu a prečítanie DocX súboru.
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ť.