140 likes | 278 Views
Delo z datotekekami v Python -u. Branko Šarabon. pomnenje podatkov kasnejša uporaba prenos podatkov med programi. Zakaj datoteke?. lahko jih ustvarimo z Beležnico datoteke so sekvenčni podatkovni tip Pri vsakem naslednjem branju beremo naslednji podatek (vrstico).
E N D
Delo z datotekekamiv Python-u Branko Šarabon
pomnenje podatkov • kasnejša uporaba • prenos podatkov med programi Zakaj datoteke?
lahko jih ustvarimo z Beležnico • datoteke so sekvenčni podatkovni tip Pri vsakem naslednjem branju beremo naslednji podatek (vrstico). Če hočemo isti podatek prebrati še enkrat, se moramo postaviti na začetek in zaporedoma brati do ustrezne vrstice. Tekstovne datoteke
Datoteko ustvarimo z ukazom: • open (niz, 'w') • primer: open ('tekst.txt', 'w') OPOZORILO! Če datoteka z imenom tekst.txt že obstaja, bomo s tem izgubili staro vsebino. Datoteka se ustvari v imeniku, kjer se program izvaja. Lahko tudi določimo pot, kjer se datoteka ustvari. Ustvarjanje datoteke
Ta pot je lahko: • relativna: • teksti\tekst.txt • absolutna: • c:\teksti\tekst.txt Opozorilo: V Pythonu velja \ za poseben znak. Če ga želimo pravilno uporabiti, ga zapišemo \\ Torej: c:\\teksti\\tekst.txt Ustvarjanje datoteke
Datoteko lahko tudi samo odpremo za branje. Kadar rabimo samo podatke iz datoteke za obdelavo, jo odpremo samo za branje. V tem primeru na datoteko ne moremo dopisati nove vsebine. To bi storili takole: • open (niz, 'r') • primer: open ('tekst.txt', 'r') Stikalo 'r' torej pomeni, da bomo odprli datoteko samo za branje - read. Branje datoteke
readline() • prebere tekočo vrstico (vključno z \n) konec datoteke • ukaz vrne prazen niz Če je v niz ‘\n’ > prazna vrstica, ‘’ > konec datoteke read() • prebere vse od trenutne vrstice dalje Ukazi za branje
Ukaz open nam datoteko ustvari ('w'). Pove pa nam tudi njeno logično oznako. Če jo shranimo v spremenljivko, jo potem v programu lahko tudi pokličemo. tekst = open ('c:\\pj\\DN2\\vaja.txt', 'w') Ukaz za pisanje: write (niz) Torej lahko na našo datoteko zapišemo takole: tekst.write ('Zapisal bom nekaj vsebine.') Pisanje na datoteko
Če dodamo še nekaj vsebine: tekst.write ('Zapisal bom še nekaj vsebine.') V bistvu sem naredil tole: tekst.write ('Zapisal bom nekaj vsebine.Zapisal bom še nekaj vsebine.') Če bi želeli zapisati vsak zapis v novo vrsto bi morali na koncu postaviti kazalko v novo vrsto. KAKO? (namig: \n) Pisanje na datoteko
Če želimo v datoteki tudi dejansko imeti besedilo, moramo zapreti podatkovni tok. To storimo z ukazom: • close() primer:tekst.close() • zapre podatkovni tok • medpomnilnik • hitrejše izvajanje • spodobi se zapreti datoteko, ko je ne potrebujemo več, čeprav … close()
Če bi želeli obdržati vsebino in jo morebiti tudi dopolniti, bi morali uporabiti sledeči ukaz: tekst = open ('c:\\pj\\DN2\\vaja.txt', 'a') Stikalo 'a' pomeni append (dodajanje)! Datoteko ravno tako odpremo za pisanje. Razlika je v tem, da mora taka datoteka že obstajati. S tem ukazom se postavimo na konec datoteke in vse kar nanjo pišemo, se doda na konec. Dodajanje vsebine v datoteko
seznam=datoZaBranje.readlines() Prebere vse vrstice v seznam nizov. Nizi vsebujejo tudi ‘\n’. Pretvorba v seznam nizov
rstrip() odstrani vse \ posebne znake z desne strani Primer: ’12\n’.rstrip() => ‘12’ če hočemo odstraniti le ‘\n’, potem niz.rstrip(‘\n’) Kako se znebiti praznih znakov?
spremenljivka=open(‘ime datoteke’,’w’) spremenljivka=open(‘ime datoteke’,’a’) spremenljivka=open(‘ime datoteke’,’r’) spremenljivka.write(‘besedilo\n’) vrsta=spremenljivka.readline() celota=spremenljivka.read() seznam=spremenljivka.readlines() spremenljivka.close() Zbrani ukazi