Python – jak zpracovat řádky textového souboru a přidat k nim text

Programovací jazyk Python se lze naučit relativně rychle a poskytne vám možnost rychle tvořit různé skripty pro práci nejenom s textem. Sám jej využívám například pro dávkové zpracování různých textových seznamů.

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.

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

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.

Komentáře k článku

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru