Na dnešním cvičení si ukážeme, jak v Pythonu číst ze souborů. Vytvoř si v IDE Thonny soubor text.txt a překopírujte do něj 5 Vámi vygenerovaných odstavců ze stránky http://www.lorem-ipsum.cz/. Soubor uložte v adresáři, kde dále vytvoříte soubor ZPD1cv05read.py.
Funkce open() vrací hodnotu, která představuje otevřený soubor. Tato hodnota má vlastní metody. V příkladu jsme si vyzkoušeli metodu read(), která najednou přečte celý obsah souboru a vrátí ho jako řetězec. Nakonec metoda close() otevřený soubor zase zavře.
Programátoři často zapomenou na korektní zavření souboru. Z těchto důvodů nám Python poskytuje příkaz with, který soubory zavírá automaticky.
Vytvoř v IDE Thonny nový soubor, ulož ho na "Plochu" pod jménem ZPD1t05with.py
Příkaz with vezme otevřený soubor, ten vrací funkce open, a přiřadí ho do proměnné soubor. Pak následuje odsazený blok kódu, kde se souborem můžeme pracovat - v tomhle případě metodou read přečíst obsah jako řetězec. Jakmile se Python dostane na konec odsazeného bloku, soubor automaticky zavře.
Vytvoř si v IDE Thonny soubor rikanka.txt a napiš tam libovolnou říkanku, kterou znáš nebo ji nejdi na internetu.
Otevřené soubory můžeme použít s příkazem for. Sekvence kódu for i in range poskytuje za sebou jdoucí čísla. Stejné je to u řetězce for i in 'brdc' poskytuje jednotlivé znaky řetězce. U souborů mám sekvence kódu for radek in soubor poskytne do proměnné radek jednotlivé řádky čtené ze souboru.
Jednotlivé řádky, které čteme končí znakem nového řádku, '\n', který známe z minulého cvičení o řetězcích. Pokud procházíme soubor v Pythonu, tak tento znak nechává na konci řetězce radek. Funkce print nám přidá další nový řádek, pokud nedostane argument end=''.
Do souboru můžeme v Pythonu i zapisovat. Musíme soubor otevřít s pojmenovaným argumentem mode='w' (z angl. write). Dejte si pozor, pokud soubor už existuje, otevřením s mode='w' se veškerý obsah souboru smaže. Po zavření souboru bude v souboru jen to, co jsme do něj zapsali. Informace pak do souboru zapíšeme známou funkcí print, a to s pojmenovaným argumentem file.
1) Napište program, který Vám po načtení souboru vrátí počet znaků v souboru.
2) Najdi na internetu text tvé oblíbené písně , zkopíruj si ho do souboru a zjisti, kolikrát se v něm vyskytuje písmeno A.
Heineman G., Pollice G., Selkow S., Algorithms in a Nutshell , O'Reilly, USA 2008
Lutz, Mark, Learning Python , Sebastopol : O'Reilly 2009
Pilgrim, Mark, Ponořme se do Python(u) 3 , Edice CZ.NIC 2010
Beazley, David M.; Jones, Brian K., Python cookbook , Sebastopol : O'Reilly 2013
Summerfield, Mark, Python 3 : výukový kurz , Brno : Computer Press 2010
Jsem správcem neuroinformatické laboratoře na Západočeské univerzitě na Katedře informatiky a inženýrství. V rámci ZČU jsem pracoval na několika projektech (sémantický web v EEG / ERP portálu, OEN ontologie, vývojová koordinační porucha u dětí, kontrola pozornosti řidiče, analýza EEG u myší, asistenční systém řízený mozkovými vlnami pro osoby se sníženou pohyblivostí, BodyInNumbers).
St: 13:00-13:55
Pá: 10:00-11:00