Otvori tekstualni fajl, upotrebi ga, a zatim prepusti Pythonu da ga zatvori.
Promenljiva čuva vrednost samo dok se program izvršava. Tekstualni fajl može da čuva znakove van tog privremenog stanja programa. Da bi bezbedno radio sa njim, otvori ga, uradi jedan jasan zadatak i izađi iz with bloka kako bi ga Python zatvorio umesto tebe.
with open("notes.txt", "w", encoding="utf-8") as file:
file.write("Learning Python is fun!")
with open("notes.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)open("notes.txt", "w", encoding="utf-8") otvara fajl pod nazivom notes.txt. "w" znači „pisanje“; encoding="utf-8" govori Pythonu kako da sačuva i pročita običan tekst. as file daje otvorenom fajlu privremeno ime za uvučeni blok ispod njega.
Learning Python is fun!with ... as file: je bezbedan obrazac, a ne nova vrsta vrednosti koju treba da zapamtiš. Unutar njegovog uvučenog bloka koristi file za pisanje ili čitanje. Kada izvršavanje izađe iz tog bloka, Python automatski zatvara fajl, iako program ovde nikada ne poziva posebnu komandu za zatvaranje.
Zapamti ovaj životni ciklus fajla: program → otvori fajl → piši ili čitaj → izađi iz with bloka → automatski zatvori
with open("notes.txt", "w", encoding="utf-8") as file:
file.write("Learning Python is fun!")
with open("notes.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)Python najpre otvara notes.txt u režimu pisanja i smešta string u fajl. Izlazak iz prvog with bloka zatvara ga. Zatim Python otvara isti fajl u režimu čitanja, file.read() vraća njegov sadržaj kao string, a content čuva vraćeni string. Na kraju print(content) ga prikazuje nakon što se zatvori drugi blok.
open("notes.txt", "w", encoding="utf-8")"notes.txt" je ime fajla. "w" ga otvara za pisanje, a "r" za čitanje. UTF-8 je uobičajen način predstavljanja teksta, pa korišćenje istog kodiranja pri pisanju i čitanju pomaže Pythonu da dosledno tumači znakove.
file.write("Learning Python is fun!")file.write() prima string i smešta te znakove u otvoreni fajl. Ne ispisuje tekst na ekran; tekst postaje sadržaj fajla.
with open("notes.txt", "w", encoding="utf-8") as file:
file.write("New note")Otvaranje postojećeg tekstualnog fajla sa "w" zamenjuje njegov prethodni sadržaj. To je korisno kada program treba da napravi novu sačuvanu verziju, ali znači da režim pisanja treba pažljivo birati.
content = file.read()file.read() čita znakove iz fajla otvorenog sa "r" i vraća jedan string. Dodeljivanje tog rezultata promenljivoj content omogućava kasnijem kodu da ga ispiše, pregleda ili koristi kao tekst.
with open("notes.txt", "r", encoding="utf-8") as file:
content = file.read()file je jednostavno ime koje ovaj primer koristi dok je fajl otvoren. Koristi ga unutar uvučenog bloka, a zatim nakon završetka bloka zadrži rezultat u obliku stringa, kao što je content.
with open("notes.txt", "w", encoding="utf-8") as file:
file.write("Practice")Playground može bezbedno da prikaže kod za rad sa fajlovima, ali njegovi fajlovi postoje u privremenom Python okruženju pregledača. Ne čuvaju se kao fajlovi na tvom računaru kada se Playground sesija završi.
Praktičan kontrolni spisak za čitanje rada sa fajlovima
- Pronađi ime fajlaKoji tekst imenuje fajl koji će ovaj blok otvoriti?
- Pronađi režimDa li je fajl otvoren sa
"w"za pisanje ili sa"r"za čitanje? - Pročitaj with blokKoje se uvučene linije izvršavaju dok je privremeno ime
filedostupno? - Prati smer kretanja podatakaDa li string ulazi u fajl pomoću
write()ili izlazi iz njega pomoćuread()? - Uoči kada se blok završavaKada se uvlačenje završi, Python automatski zatvara taj otvoreni fajl.
- Pronađi rezultat koji možeš da koristišKoja promenljiva tipa string nakon čitanja čuva sadržaj fajla za kasniji kod?
Česte početničke greške
- Korišćenje režima čitanja kada program treba da pišeFajl otvoren sa
"r"služi za čitanje. Koristi"w"kada je sledeći korakfile.write(...). - Zaboravljanje da režim pisanja zamenjuje stari sadržajOtvaranje istog postojećeg fajla sa
"w"počinje iznova, pa se prethodni tekst zamenjuje. - Pokušaj čitanja iz bloka otvorenog samo za pisanjePonovo otvori fajl sa
"r"pre korišćenjafile.read(). - Pokušaj pisanja u bloku otvorenom samo za čitanjeKoristi zaseban blok sa
"w"pre bloka za čitanje kada program prvo treba da sačuva tekst. - Smeštanje rada sa fajlom van uvlačenjaNaredbe koje koriste
filepripadaju unutar uvučenogwithbloka. - Korišćenje fajla nakon završetka njegovog with blokaKada se blok završi, taj otvoreni fajl je zatvoren. Umesto toga za kasniju upotrebu zadrži vraćeni string, kao što je
content.
