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

« zpět na python

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

Nezávazně vyzkoušejte webové stránky zdarma

Klientská sekce pro Vás

Spravujte své domény a hosting pohodlně 24 hodin denně

Kontakt pro zákazníky

Technická podpora

PO-PÁ 8:00-21:00
SO-NE, svátky 9:00-21:00

E-mail: podpora@banan.cz

Online pracovník

Patrik Jankov

+420 553 810 250

Online chat

Zvládáme opensource

Na našich serverech jsme ručně ověřili funkci více než 140 opensource systémů, některé z nich nabízíme na jedno kliknutí v administraci.

Hostované domény

8172 domén 6794 1378

Poslední článek - HOMEPAGE PRVKY

O
Ověřit dostupnost domény
Technická podpora: +420 553 810 250podpora@banan.cz
Technická podpora 800-2100 (SO-NE 900-2100) X
Online pracovník: Patrik Jankov
+420 553 810 250
podpora@banan.cz nebo Online chat
Kontaktovat technickou podporu můžete zde
Kontaktovat technickou podporu můžete zde
PO-PÁ 800-2100 (víkendy a svátky 900-2100)