Lekce 6 Práce se soubory Práce se soubory. Zpracování binárních a textových souborů C2184 Úvod do programování v Pythonu podzim 2015 Práce se soubory Mgr. Stanislav Geidl G2184 do progra v Pythonu Soubory Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory Cvičení 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, ... Práce se soubory Mgr. Stanislav Geidl C2184 Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory Cvičení 6.2 Open, read, write, close Práce se soubory Mgr. Stanislav Geidl mode), módy: (r1, r+2, w3, Otevření SOUboru open (name, t4, b5) čtení dat v souboru read zápis dat do souboru write uzavření souboru close 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í 1 read = 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 es Použití with • konstrukce with provede automatické uzavření souboru with open ( "test.txt", "r") as filehandler: data = filehandler.read() Práce se soubory Mgr. Stanislav Geidl C2184 Práce s textovými soubory Práce s binárními soubory Cvičení 6.4 Na co si dát pozor! Práce se soubory Mgr. Stanislav Geidl C2184 i programová kódování souboru (UTF-8, ISO-8895-2, Windows 1250 neboli CP1250) • funkCG Unicode a encode zakončení konce řádků (Windows \r\n vs. UNIX\n) • funkce strip a rstrip Soubory Práce se soubory v Pythonu Práce s binárními soubory Cvičení 6.5 Funkce readlines, readline Práce se soubory Mgr. Stanislav Geidl • 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) C2184 Soubory Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory Cvičení • 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) 6.6 Funkce seek a tell Práce se soubory Mgr. Stanislav Geidl C2184 funkce seek nastaví pozici ukazatele v souboru funkce tell nám řekne aktuální pozici v souboru Soubory Práce se soubory v Pythonu Práce s textovými soubory 'ráce s binárními )ubory Práce s binárními soubory Cvičení 6.7 PyGrep Práce se soubory Mgr. Stanislav Geidl C2184 Cvičení 1: Napište vlastní grep pro hledání klíčového slova v souboru. Soubory Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory Cvičení 6.8 MolReader 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. Práce se soubory Mgr. Stanislav Geidl C2184 Soubory Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory 6.9 CSVReader Práce se soubory Mgr. Stanislav Geidl C2184 Cvičení 3: Napište skript pro čtení souboru ve formátu CSV. Soubory Práce se soubory v Pythonu Práce s textovými soubory Práce s binárními soubory Cvičení 6.10 ChargeExtractor Práce se soubory Mgr. Stanislav Geidl C2184 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 Cvičení 6.11