Nejsem sice žádný expert na programovací jazyk Python, ale v minulosti jsem si s ním trošku hrál a vytvořil několik pomocných prográmků fungujících jak v příkazovém řádku, tak v grafickém režimu s okny. Od doby, kdy intenzivně používám Mac OS X rád využívám toho, že Python je v tomto operačním systému zabudován.
V tomto článku bych se chtěl podělit o jednoduchý skript, který zpracuje textový soubor a na začátek a konec každého řádku v tomto souboru přidá nějaký další text. Praktické využití? Představte si, že máte nějaký seznam souborů, pro které potřebujete vytvořit nějakou HTML strukturu nebo třeba sadu SQL příkazů, které provedou něco s názvy souborů evidovanými v databázi.
Můžete samozřejmě vytvořit nějaký sofistikovanější skript jak v Pythonu, tak třeba v PHP, ale mnohdy nějaká jednoduchá úprava textového seznamu plně postačí. Textový soubor se seznamem souborů v aktuální složce vytvoříte v Mac OS X nebo Linuxu příkazem ls > soubory.txt, v případě Windows použijte příkazový řádek a dir /B > soubory.txt.
Skript v Pythonu pro úpravu řádků textového souboru
Jakmile máme připraven seznam souborů, můžete se pustit do skriptu v Pythonu. Nejprve si připravíme řetězce připojované za chvíli na začátek a konec každého řádku. Poté pomocí funkce open() otevřeme soubor s textovým seznamem pro čtení a přiřadíme jej do proměnné seznam. Následně funkcí readlines() načteme jednotlivé řádky souboru do pole radky.
Vytvoříme si pole uprava a potom pomocí smyčky for projdeme jednotlivé řádky. Do pole uprava postupně vkládáme na konec (zjištěný délkou pole pomocí len()) nejprve nový začátek řádku, poté stávající text řádku a následně nový konec řádku. Všimněte si, že stávající řádek je nutné zbavit znaku konce řádku, jinak by se vám nový konec zařazoval až na další řádek.
Po dokončení smyčky for lze seznam souborů zavřít a naopak pro zápis otevřeme nový soubor vystup.txt. Zkontrolujeme, zda je v poli uprava nějaký obsah a pokud ano, tak postupně jednotlivé položky v tomto poli zapíšeme coby nové řádky do výstupního souboru. Poté jej jenom zavřeme a skript se ukončí.
dopredu = "<li>Soubor: "
dozadu = "</li>\n"
seznam = open('soubory.txt', 'r+')
radky = seznam.readlines()
uprava = []
for radek in radky:
if radek:
uprava.insert(len(uprava),dopredu + radek.strip("\n") + dozadu)
seznam.close()
vystup = open('vystup.txt', 'w+')
if len(uprava) > 0:
for radek in uprava:
vystup.write(radek)
vystup.close()
Výše popsaný postup můžete vidět v následujícím kódu, který můžete modifikovat dle libosti. Ukázka upravuje seznam souborů tak, že je přetváří do HTML odrážek tvořených značkou <li>.
Skript můžete samozřejmě spouštět z příkazového řádku zadáním python nazev_souboru.py.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Přidat komentář