84 lines
3.1 KiB
Python
84 lines
3.1 KiB
Python
|
# fajlovi
|
||
|
|
||
|
# Kako manipulisemo fajlovima?
|
||
|
# Kako citamo fajlove?
|
||
|
# Kako kreiramo fajlove?
|
||
|
# Kako pisemo (dodajemo sadrzaj) u fajlove?
|
||
|
|
||
|
# Da bi otvorili fajl (za citanje ili pisanje) u python-u, koristimo funkciju:
|
||
|
# open
|
||
|
# argumenti za funkciju `open` su:
|
||
|
# - ime fajla (onog koji zelimo da otvorimo),
|
||
|
# - mod
|
||
|
|
||
|
# Objasnjenje za modove:
|
||
|
# Oni govore pajtonu sta planiramo da radimo sa tim fajlom. Neki od ponudjenih
|
||
|
# i najcesce koriscenih modova su:
|
||
|
# - "w" za pisanje, ako fajl ne postoji, kreira se novi, ako fajl postoji,
|
||
|
# sve u njemu se brise i onda mozemo da pisemo u taj fajl
|
||
|
# - "a" za pisanje, nalik na "w" samo sto mod "a" ne brise fajl nego dodaje
|
||
|
# - "r" za citanje
|
||
|
|
||
|
# znaci da bi otvorili neki fajl (tekstualni fajl) i njegov sadrzaj zabelezili
|
||
|
# u promenljivoj (tipa string) mozemo da uradimo sledece:
|
||
|
|
||
|
neki_fajl = open("tekst.txt", "r") # tekst.txt je fajl koji se nalazi u istom
|
||
|
# folderu kao i ovaj fajl (fajlovi.py)
|
||
|
|
||
|
sadrzaj_fajla = neki_fajl.read()
|
||
|
|
||
|
print(sadrzaj_fajla)
|
||
|
|
||
|
neki_fajl.close() # sve fajlove koje otvorimo moramo i da zatvorimo!!!
|
||
|
# inace rizikujemo da se desi korupcija fajla
|
||
|
|
||
|
# ako otvorimo neki fajl, i 2 puta pokusamo da procitamo njegov sadrzaj, samo
|
||
|
# prvi put cemo procitati taj sadrzaj; tj. citanje fajla, "konzumira" taj fajl!
|
||
|
# !! to ne znaci da ce fajl biti obrisan !!
|
||
|
|
||
|
|
||
|
fajl = open("tekst.txt", "r")
|
||
|
|
||
|
print(fajl.read())
|
||
|
print(fajl.read()) # ovde necemo stampati nista, zato sto je fajl vec procitan
|
||
|
# ako zelimo ponovo da procitamo isti fajl, moramo ga prvo
|
||
|
# zatvoriti pa ponovo otvoriti
|
||
|
fajl.close()
|
||
|
|
||
|
# druge metode (osim read()) koje mozemo koristiti su:
|
||
|
# - readline() koji cita jednu liniju fajla (vraca nam string)
|
||
|
# - readlines() koji cita sve linije fajla i vraca nam niz linija
|
||
|
# - write(tekst) koji upisuje zadati tekst (argument tipa string) u zeljeni fajl
|
||
|
|
||
|
# u python-u, mozemo iterirati preko fajlova (kao i sa nizovima i recnicima)
|
||
|
|
||
|
deniro_fajl = open("deniro.csv","r")
|
||
|
|
||
|
filmovi = {}
|
||
|
# ako pogledate fajl "deniro.csv", sastoji se od jedne linije koja opisuje redove
|
||
|
# fajla, a ostatak fajla su pomenuti redovi u formatu:
|
||
|
# vrednost, vrednost, vrednost
|
||
|
# !! pogledati fajl "deniro.csv" !!
|
||
|
|
||
|
fajl.readline() # da "preskocimo" prvu liniju fajla
|
||
|
|
||
|
for linija in fajl:
|
||
|
linija = linija.strip() # uklanjamo '\n' (znak za novi red) iz linije
|
||
|
# zatim delimo liniju na 3 dela (za 2 reza..), gde su delovi:
|
||
|
# godina kada je film objavljen, rejting filma i naslov filma
|
||
|
godina, rejting, naslov = linija.split(", ", 2)
|
||
|
filmovi[naslov] = (rejting, godina)
|
||
|
|
||
|
# sada u recniku "filmovi" koji smo definisali iznad, imamo parove
|
||
|
# film => (rejting, godina)
|
||
|
|
||
|
# to mozemo da iskoristimo da nadjemo npr:
|
||
|
# - sve filmove odredjene godine (npr. pitamo korisnika koju godinu zele, i onda
|
||
|
# ispisemo sve filmove od te godine, sortirane po rejtingu)
|
||
|
# - najbolje ocenjeno filmove
|
||
|
# - da vrsimo pretragu nad filmovima (npr. pitamo korisnika koji film zeli, i
|
||
|
# onda ispisemo godinu izlaska tog filma i njegov rejting, a ako u recniku
|
||
|
# nemamo taj film, onda ispisemo da nemamo trazeni film)
|
||
|
|
||
|
# ovo sve mogu biti zadaci za domaci!
|