Python - Práce se soubory (7. díl)

Napsal (») 1. 2. 2011 v kategorii Programování, přečteno: 2784×
banan/img/python-logo-glassy.png

Dnes si ukážeme jak vytvářet soubor, načítat a vkládat do něj informace. Téměř všechny programovací jazyky umí pracovat s textovými soubory a Python samozřejmě také.

Vytváření textového souboru na disku

Soubor se v Pythonu vytváří takto:

soubor=file(nazev_souboru,'w')

je prozatím uložen jen v paměti RAM a je otevřen pro zápis - parametr w. Celkem máme 3 parametry r, w, a. Každý z nich má různé vlastnosti. Pokud použijeme parametr r (jako read v anglickém jazyce), znamená to, že chceme pracovat se souborem pouze pro čtení, dále pak w pro zápis (write - vznikne vždy nový soubor, pokud již existoval, přepíše se), a (append) použijeme v případě, když nevíme zda soubor existuje a pokud neexistuje, tak se vytvoří.

Nyní si můžeme vyzkoušet jednoduché vytvoření souboru s ukádáním textu do něj:

>>>nazev='soubor.txt'#název souboru uložíme do proměnné "nazev"
>>>soubor=file(nazev,'w')#do proměnné soubor ukládáme soubor s atributy pro zápis
>>>vstup=raw_input('Zadej text: ')  
>>>soubor.write(vstup) #zapisujeme do proměnné soubor
>>>soubor.close()#zavřeme soubor

Následně si v adresáři, kde máte tento script uložen, najděte soubor s nazvem 'soubor.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....

Máme nyní metody: file(), write() a close() + nová flush().

  1. soubor.read() - přečtení celého souboru (samozřejmě v režimu 'r')
  2. soubor.write(řetězec) - zápis na disk (v režimu 'w') - pouze textové proměnné!
  3. soubor.flush() - vynucený zápis na disk ještě před close()
  4. soubor.close() - uzavření souboru
  • Metoda je funkce přiřazená vždy k proměnné (objektu). Zápis je objekt tečka metoda (případné parametry).


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

Čtení souboru v Pythonu je velmi jednoduché, ukážeme si v kódu za použití cyklu for, zároveň se jej aspoň procvičíme:

>>>soubor=file('MujPrvniSoubor.txt','r')
>>>cisloRadku=0
>>>for radek in soubor:
cisloRadku=cisloRadku+1
print "Radek", cisloRadku,":", radek, #vyzkoušejte vynechat čárku za 'radek'
soubor.close()

Pokud máme *.txt soubor který vypadá takto:

...výpisem programu bude:

Radek 1 : Ahoj
Radek 2 : svete

Jak jsem již zmínil, metoda write() zapisuje pouze textové proměnné, co když ale chceme ukládat i čísla?...

Ukládání čísel

Ukládat čísla můžeme jen pouze jako text, tudíž zde bude potřeba nějakého předělání číselné proměnné na textovou.

-Toho docílíme jednoduchým přetypováním:

ciselnaPromenna=25
textPromena=str(ciselnaPromenna) # 25 je nyní ve tvaru '25'

Děkuji za pozornost ...smile

Štítky: Python
Hodnocení:     nejlepší   1 2 3 4 5   odpad
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel dvě a devět