Ahoj, mohol by si prosim ta zaslat tvoj kompletny kod, v ktorom ti tu chybu pise ? Urcite to pomoze. Celkovo je rozumne vzdy zasielat kod, ktory ti robi problemy a chces s nimi teda pomoct. Vdaka.
azur >-----Pôvodná správa----- >Od: Jarek Krcmar [mailto:[EMAIL PROTECTED] >Komu: [email protected] >Predmet: [python] Vytváření textových souborů prosím, poraďte > > > > >Zdravím, > >omlouvám se za to, že jsem skopíroval obsah desáté lekce. Mě, jakožto >nevidomého zajímá text a nikoli grafika, proto bych rád vytvořil textový >soubor, který by bylo možné číst přímo z klávesnice. > >Nevím ale, jak to mám udělat, protože popis zadání se nái zdá poněkud >nejasný. > >Jakmile jsem si totiž vytvořil textový soubor, který je v té lekci zmíněn, >tak mi vyskočí hláška o tom, že jde o Syntax error. > >Jarek > >Tak, konečně se dostáváme k práci se soubory. Ukážeme si, jak ukládat a >načítat data >do a ze souborů. >Telefonní seznam 3. >T >ak, konečně se dostáváme k práci se soubory. Ukážeme si, jak ukládat a >načítat data >do a ze souborů. >Trocha teorie >Soubory na disku nejsou nic jiného než skládka čísel a znaků. Téměř všechny >programovací >jazyky defaultně pracují s obyčejnými textovými soubory bez češtiny. I v >Python >u existují funkce na vytvoření souboru nebo složky, přejmenování, kopie, >přesun, >zjištění data a velikosti, apod. O těch ale někdy jindy. >Začínáme >Vyzkoušejte: >nazev='MujPrvniSoubor.txt' >soubor=file(nazev,'w') >vstup=raw_input('Zadej text: ') >soubor.write(vstup) >soubor.close() >Následně si v adresáři, kde máte tento script uložen, najděte soubor s >nazvem 'MujPrvniSoubor.txt' >a prohlédněte si jeho obsah. Vyzkoušejte několikrát. Ten původní obsah by se >měl >vždy ztratit a bude tam jen to poslední, co jste zadali.... >Pokud zadáte české znaky, soubor se pak uloží v tom kódovaní, ve kterém jste >to zadávali. >Lépe řečeno, které máte nastaveno ve vašem prostředí. Já konkrétně mám Latin >II (cp852) >pod černým pythonovským shellem. Při prohlížení PSPadem (na Linuxu a Macu >vhodným >editorem, který umí s různými kódování pracovat), když si nastavíte správně >kodovaní >češtiny, uvidíte správný zápis. >Tři druhy přístupu >Obecně mohou být soubory otevřeny ve třech režimech: pro čtení, pro zápis >(nový soubor) >a pro přidávání. Jednotlivé režimy se od sebe odlišují druhým parametrem ve >funkci >file(). První parametr je samozřejmě název souboru. >čtení: 'r' jako 'read' >zápis: 'w' jako 'write' (vznikne vždy nový soubor, pokud již existoval, >přepíše se) >přidání: 'a' jako 'append' (pokud neexistuje, vytvoří se nový) >Metody souborů >Jak jsem již v předchozích lekcích naznačoval, metoda je funkce přiřazená >vždy k >proměnné (objektu). Zápis je objekt tečka metoda (případné parametry). >soubor.read() - přečtení celého souboru (samozřejmě v režimu 'r') >soubor.write(řetězec) - zápis na disk (v režimu 'w') >soubor.flush() - vynucený zápis na disk ještě před close() >soubor.close() - uzavření souboru >Upozorňuji, že všechna data se >fyzicky >do souboru zapíšou až s metodou close(). Předtím zůstávají ve vnitřní >paměti - je >to z důvodu rychlosti. Chceteli donutit zápis na disk před close(), použijte >flush(). >Čtení souboru řádek po řádku >Cyklus for se v >Python >u uplatní velmi názorně i u souborů. Přidejte si ručně do vašeho souboru >několik >řádek textu. Nezapomeňte uložit a vyzkoušejte: >soubor=file('MujPrvniSoubor.txt','r') >cisloRadku=0 >for radek in soubor: >cisloRadku=cisloRadku+1 >print "Radek", cisloRadku,":", radek, >soubor.close() >Čárku za 'radek' jsem udělal schválně. Víte proč? Vyzkoušejte... >Ukládání čísel >Chceme-li uložit obyčejná čísla, musíme je převést na text, protože funkce >write() >přijímá jen textové proměnné. Vyzkoušejte: >soubor=file('MujPrvniSoubor.txt','a') >posloupnost=[5,48,74,89,544] >for cislo in posloupnost: >cisloText=str(cislo) >soubor.write(cisloText+', ') >soubor.write('\n') >soubor.close() >Toto je základ pro práci se soubory. Je třeba si to řádně několikrát >vyzkoušet a >pochopit. Když něco nefunguje tak to nesmí být důvod k tomu "já na to >kašlu!", ale >spíše "sakra, to by bylo abych na to nepřišel!". Zkoušejte, experimentujte, >ptejte >se a čtěte chybové hlášky. O těch by mohla být jedna z dalších lekcí. >Úkol >Zadání >Úkol je více než jasný. Uložte data z Vašeho telefonního seznamu do souboru. >Pošlete >mi program i uložená data. Uložená data vložte jako komentář na konec >scriptu. >Extra pro pokročilé >Načtěte se souboru data vašeho telefonního seznamu. Je to mnohem složitější >než pouhé >uložení. Budete muset číst řádku po řádce a v řádku nějak od sebe oddělovat >hodnoty, >které tam jsou. Připomínám, že načtený řádek není nic jiného, než jeden >řetězec. >Poznámka >Úkoly známkuji a opravuji skutečně rád a nevím, jestli úkoly, které dávám >jsou moc >těžké, nebo moc lehké, nebo to nikdo nečte, protože žádné vypracované úkoly >nedostávám. >Pavel Kosina >Autor programuje v Pythonu. > >_______________________________________________ >Python mailing list >[email protected] >http://www.py.cz/mailman/listinfo/python _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
