Uvod u jezik PYTHON

(priručnik za  predmet "Skript jezici")


© Matematički fakultet

Miljana Mladenović, Duško Vitas

O Python-u
Instalacija
Sintaksa jezika Python
Osnovne osobine
Službene reči
Operatori i njihovi prioriteti
Osnovne algoritamske strukture
Blok naredbi
if struktura
while struktura
Iskazi: break, continue, pass
Tipovi podataka u Python-u
Osnovni i ugradjeni tipovi
Brojevi
Konverzija formata
Neke matematičke funkcije
Neke random funkcije
Niske
Neke funkcije nad niskama
Formatiranje niski
Liste
Torke
Osnovni izrazi sa torkama
Rečnici
Skupovi
Operacije nad skupovima
Datoteke
Funkcije modula os za rad sa datotekama
Funkcije modula os za rad sa folderima
Izuzeci
Funkcije
Moduli
Paketi
Klase
Regularni izrazi
Baze podataka
Primeri u Netbeans-u

Datoteke

   

Python razlikuje pristup binarnim i tekstualnim datotekama. Svaka datoteka se mora najpre otvoriti pozivom funkcije file <datoteka> = open(<ime_datoteke>[,<režim>][,<bafering>])  da bi se moglo pristupiti njenim podacima. Ako se otvori navođenjem <režim> parametra w onda se može vršiti upis u nju. Ukoliko datoteka sa datim imenom već postoji, njen prethodni sadržaj se briše, a ako ne postoji, otvaranjem se kreira nova. Ako se datoteka otvori navođenjem <režim> parametra a onda se vrši dodavanje sadržaja u nju. Datoteka se zatvara pozivom metoda <datoteka>close().

open(<datoteka>, 'w'),  open(<datoteka>, 'a') Otvaranje datoteke

<datoteka>. close()        Zatvaranje datoteke

>>>izlaznaD=open('datoteka.txt', 'w')

>>>print izlaznaD

<open file 'datoteka.txt', mode 'w' at 0x009F53E8>

>>> izlaznaD.close()

   

<datoteka>.write(<sadrzaj>)    Metod kojim se sekvencijalno upisuje sadržaj u datoteku. Argument <sadrzaj>  mora biti tipa string, pa se, u slučaju drugog tipa, mora primeniti ili konverzija ili format operator.

>>>linija1="Pera Peric, student I godine "

>>> izlaznaD.write(linija1)

>>> izlaznaD.write(linija1)

>>> linija1= " prosecna ocena:"

>>> izlaznaD.write(linija1)

>>> linija1=9.02

>>> izlaznaD.write(str(linija1) + "\n")

   

#upotreba format operatora

>>> linija2="Mika Mikic, student II godine prosecna ocena:%.2f" %(8.82)

>>> izlaznaD.write(linija2)

   

<datoteka>.writelines(<lista>)

>>> print "Kreiranje teksualne datoteke  writelines() metodom."

>>> datotekaT = open("tekstualna1.txt", "w")

>>> sadrzaj = ["Pera\n", "Mika\n", "Laza\n"]

>>> datotekaT.writelines(sadrzaj)

>>> datotekaT.close()

   

>>> print "Kreiranje teksualne datoteke  append() metodom."

>>> datotekaT = open("tekstualna1.txt", "a")

>>> datotekaT.write("Mira\n")

>>> datotekaT.write("Vera\n")

>>> datotekaT.write("Zora\n")

>>> datotekaT.close()

>>> print "Citanje tekstualne datoteke"

>>> datotekaT = open("tekstualna1.txt", "r")

>>> print datotekaT.read()

Pera

Mika

Laza

Mira

Vera

Zora

>>> datotekaT.close()

   

<datoteka>.read()          Čitanje sadržaja datoteke

>>> datotekaT = open("tekstualna.txt", "r")

>>> print datotekaT.read()

   

Režim             Značenje

r   Otvara datoteku samo za čitanje. Ovo je podrazumevani režim rada. Pointer se nalazi na početku datoteke.

rb Otvara datoteku samo za čitanje u binarnom formatu. Ovo je podrazumevani režim rada. Pointer se nalazi na početku datoteke.

r+  Otvara datoteku za čitanje i upis. Pointer se nalazi na početku datoteke.

rb+ Otvara datoteku za čitanje i upis u binarnom formatu. Pointer se nalazi na početku datoteke.

w   Otvara datoteku samo za upis. Ako datoteka postoji, briše prethodni sadržaj. Ako datoteka ne postoji, kreira novu za upis.

wb Otvara datoteku samo za upis u binarnom formatu. Ako datoteka postoji, briše prethodni sadržaj. Ako datoteka ne postoji, kreira novu za upis.

w+ Otvara datoteku za čitanje i upis. Ako datoteka postoji, briše prethodni sadržaj. Ako datoteka ne postoji, kreira novu za upis i čitanje.

wb+ Otvara datoteku za upis i čitanje u binarnom formatu. Ako datoteka postoji, briše prethodni sadržaj. Ako datoteka ne postoji, kreira novu za upis i čitanje.

a   Otvara datoteku za dodavanje sadržaja. Ako datoteka postoji, pointer se nalazi na kraju. Ako datoteka ne postoji, kreira novu za upis.

ab Otvara datoteku za dodavanje sadržaja u binarnom formatu. Ako datoteka postoji, pointer se nalazi na kraju. Ako datoteka ne postoji, kreira novu za upis.

a+ Otvara datoteku za dodavanje sadržaja i čitanje. Ako datoteka postoji, pointer se nalazi na kraju. Ako datoteka ne postoji, kreira novu za upis i čitanje.

ab+ Otvara datoteku za dodavanje sadržaja i čitanje u binarnom formatu. Ako datoteka postoji, pointer se nalazi na kraju. Ako datoteka ne postoji, kreira novu za upis i čitanje.

   

Atributi objekta file:

                <datoteka>.closed          #vraća True ako je datoteka zatvorena, u suprotnom vraća False

<datoteka>.mode           #vraća režim u kome je datoteka otvorena

<datoteka>.name           #vraća ime datoteke

   

>>> print "datoteka je zatvorena", str(datotekaT.closed)

datoteka je zatvorena True

>>> print "rezim datoteke ", datotekaT.mode

rezim datoteke  r

>>> print "Ime datoteke ", datotekaT.name

Ime datoteke  tekstualna1.txt

   

Metodi za upravljanje pointerom datoteke:

tell()  Vraća informaciju o trenutnoj poziciji pointera u datoteci. Podrazumevana vrednost je 1.

   

seek(<pomeraj>[, <trenutna_pozicija>]). Menja trenutnu poziciju na novu dodajući <pomeraj> bajtova u odnosu na trenutnu poziciju  < trenutna _pozicija>. Podrazumevana vrednost je 0.

   

>>> datoteka = open("tekstualna1.txt", "r+")

>>> sadrzaj = datoteka.read(4);

>>> print "procitano : ", sadrzaj

procitano :  Pera

>>> trenutna_pozicija = datoteka.tell();

>>> print "Pointer na poziciji : ", trenutna_pozicija

Pointer na poziciji :  4

>>> trenutna_pozicija = datoteka.seek(4, 4);

>>> sadrzaj = datoteka.read(5);

>>> print "procitano jos: ", sadrzaj

procitano jos:  Mika

>>> datoteka.close()

 

Beograd, novembar 2010.