Práce se soubory Mgr. Stanislav Geidl Lekce 7 Práce se soubory Práce se soubory. Zpracování binárních a textových souborů. C2184 Ůwd do programováni v Pyftonu C2184 Úvod do programování v Pythonu podzim 2014 Soubory Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory Cvičení Domácí úkol Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita Soubory • soubor je sada informací uložených pod konkrétním jménem na datovém médiu, např. soubor Iecture07.pdf uložený na vašem pevném disku rozdělení souborů na O textové soubory obsahují informace uložené čitelné textové podobě, kterou můžeme jednoduše uložit do typu string, příkladem může být formát molekul mol, mol2 nebo pdb, některé výstupy z programů, ... © binární soubory obsahují informace uložené pro nás v nečitelné podobě sekvenci bytu, jedná se o zkompilované programy, obrázky, videa,... Open, read, write, close Práce se soubory Mgr. Stanislav Geidl • otevření souboru open (name, mode), módy: (r1, r+2, w3 t4, b5) • čtení dat v souboru read • zápis dat do souboru write • uzavření souboru close C2184 Ůwd do programováni v Pyftonu Soubory filehandler = open("test.txt", "r' data = filehandler.read() filehandler.close() Práce s textovými soubory Práce s binárními soubory Cvičení Domácí úkol 1read = pro čtení, pokud soubor neexistuje nastane výjimka lOError 2pro čtení a zápis, pokud soubor neexistuje nastane výjimka lOError 3write = pro zápis, stávající soubor bude přepsán, v opačném případě se soubor vytvoří 4textový formát souboru, defaultní volba 5byte = binární formát souboru 7.3 Použití with • konstrukce with provede automatické uzavření souboru with open("test.txt", "r") as filehandler: data = filehandler.read() Na co si dát pozor! • kódování souboru (UTF-8, ISO-8895-2, Windows 1250 neboli CP1250) • funkce Unicode a encode • zakončení konce řádků (Windows \r\n vs. UNIX\n) • funkce strip a rstrip Práce se soubory Mgr. Stanislav Geidl C21S4 Úwd do programováni v Pythonu Soubory Práce se soubory v Pythonu Práce s binárními soubory Cvičení Domácí úkol Funkce readlines, readline • funkce readlines přečte celý soubor a řádky uloží do listu • funkce readline přečte jeden řádek • čtení celého souboru po řádcích pomocí cyklu f or: with open("test.txt", "r") as filehandler: for line in filehandler: print(line) • tento způsob je pro zpracování rozsáhlých souborů nejlepší, do paměti nenhrajeme v jeden okamžik celý soubor, ale pracuje s ním po částech (řádcích) Funkce seek a tell Práce se soubory Mgr. Stanislav Geidl • funkce seek nastaví pozici ukazatele v souboru • funkce tell nám řekne aktuální pozici v souboru C2184 Úvod do programováni v Pythonu Soubory Práce se soubory v Pythonu Práce s textovými soubory 7.7 PyGrep Cvičení 1: Napište vlastní grep pro hledání klíčového slova v souboru. Práce se soubory Mgr. Stanislav Geidl G21S4 Úvod úq programováni v Pythonu Soubory Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory Domácí úkol MolReader Práce se soubory Mgr. Stanislav Geidl C2184 Úvod do programováni v Pythonu Cvičení 2: Napište skript pro čtení molekuly ve formátu mol. Jedná se o tzv. formát s fixní šířkou (Fixed Width Text File) podobně jako formát PDB. Soubory Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory Domácí úkol 7.9 CSVReader Cvičení 3: Napište skript pro čtení souboru ve formátu CSV. Práce se soubory Mgr. Stanislav Geidl G21S4 Úvod do programováni v Pythonu Soubory Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory Domácí úkol ChargeExtractor Práce se soubory Mgr. Stanislav Geidl C2184 Úvod do programováni v Pythonu Cvičení 4: Napište skript pro extrakci atomových nábojů z výstupu Gaussianu. Soubory Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory Domácí úkol Domácí úkol Práce se soubory Mgr. Stanislav Geidl C2184 Úvod do programováni v Pythonu Ze studijních materiálů si stáhněte rozpracované cvičení a doplňte potřebnou funkcionalitu dle komentářů, proveďte kontrolu pomocí přiložených testů. Vše pak nahrejte do připravené odevzdávárny. Soubory Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory 7.12