Vstupné súbory k týmto cvičeniam nájdete v tomto zipe.
V súbore uloha0.txt
je text, ktorý má obrátené poradie riadkov (pôvodný text je z článku o pythone na Wikipédii). Napíšte program, ktorý vytvorí nový súbor riesenie0.txt
, ktorého obsah bude rovnaký ako uloha0.txt
, ale poradie riadkov bude obrátené.
Aby sme nemuseli riešiť zatváranie súborov, odporúčam otvárať súbory s pomocou konštruktu with
. Ak chceme zo súboru čítať, otvoríme ho pomocou open(<nazov suboru>, 'r')
(argument 'r'
hovorí, že chceme čítať (read)).
with open('uloha0.txt', 'r') as f:
<prikazy pracujuce so suborom f>
<pokracovanie programu>
Čítať zo súboru sa dá niekoľkými spôsobmi:
with open('uloha0.txt', 'r') as f:
lines = f.readlines() # načíta celý súbor a vráti pole, v ktorom každý prvok je jeden riadok zo súboru
print(lines)
with open('uloha0.txt', 'r') as f:
line = f.readline() # načíta iba jeden riadok zo súboru
print(line)
with open('uloha0.txt', 'r') as f:
for line in f: # prechádza postupne všetky riadky súboru. Na rozdiel od readlines(), nemusíme mať celý súbor v pamäti naraz
print(line)
with open('uloha0.txt', 'r') as f:
text = f.read() # načíta celý súbor do jedného stringu
print(text)
Keď otvárame súbor na zapisovanie, namiesto argumentu 'r'
dáme funkcii open()
hodnotu 'w'
(write). Ak súbor s daným názvom neexistuje, open()
nám ho vytvorí. Do súboru zapisujeme pomocou metódy .write()
.
with open('riesenie0.txt', 'w') as f:
f.write('ahoj svet\n') # zapíše do súboru
Bol raz jeden súbor s textom. Tento text sme rozdelili do viacerých súborov:
Výsledok tohto besnenia nájdete v adresári uloha1
. Zistite, ako vyzeral pôvodný súbor.
V tejto úlohe sa vám zídu nasledujúce volania z balíčka os
(na začiatku programu teda musíte napísať import os
):
Prípadne ďalšie (nebojte sa googliť).