Python Stvaranje upis i ispis datoteke Marko Mika
- Slides: 24
Python - Stvaranje, upis i ispis datoteke - Marko Mikša, mag. inf.
Uvod • Što je string? – Proizvoljni znakovni niz • Kako tj. gdje zapisati rezultat igre na računalu, da bude vidljiv svaki put kad igra završi? – U datoteku • Zbog čega koristiti datoteku, a ne string? – datoteka može trajno pamtiti veliku količinu podataka – preko datoteke se može obavljati razmjena podataka između programa
Metode kod datoteka • Pozivaju se proizvoljnim imenom datoteke i nazivom metode međusobno odvojeni točkom: ime_datoteke. metoda() • Primjer: dat. read()
Koraci u radu sa datotekom 1. Otvoriti datoteku - komunikacija između datoteke i objekta 2. Izvoditi radnje nad datotekom (čitanje, pisanje, nadopunjavanje…) 3. Zatvoriti datoteku – oslobađanje memorije, da drugi programi mogu koristiti datoteku
Otvaranje i zatvaranje datoteke • Otvaranje: funkcija open, putanja, parametar: • naziv = open(‘putanja\ime_datoteke’, ‘parametar_otvaranja’) • Primjer: dat = open(‘c: \. . . \prva. txt’, ‘w’) • Zatvaranje datoteke: metoda close() • Primjer: dat. close()
Otvaranje datoteke - parametri • Parametar pokazuje što ćemo s datotekom raditi: – ‘r’ – otvaranje samo za čitanje – ‘w’ – otvaranje za pisanje – postojećoj datoteci sav sadržaj se briše; kreiranje nove datoteke – ‘a’ – otvaranje za dodavanje podataka na kraj datoteke Primjer: dat = open(‘c: \. . . \prva. txt’, ‘r’)
Otvaranje datoteke – putanja • Putanja služi za povezivanje Pythona sa datotekom • Znak „” koristi se duplo „\” da se ne miješa sa standardnim oznakama: – \ – kosa crta u putanji (backslash) Primjer: dat = open(‘c: \. . . \datoteka. txt’, ‘r’)
Priprema za 1. problem • Kreirajte mapu „vjezbe“ na radnoj površini • Otvorite IDLE; File – New Window
1. Izradite program koji će… 1. Kreirati datoteku „prva. txt“ u mapi „vjezbe” na radnoj površini 2. Zapisati u nju „Moja prva datoteka. “ 3. Zapisati ime i prezime u novi red 4. Zatvoriti datoteku • Iz IDLE sučelja spremite datoteku „zapisivanje. py“ na radnu površinu i pokrenite • Provjerite sadržaj datoteke „prva. txt” u mapi „vjezbe”
Metode kod zapisivanja u datoteku write() close() • • Zapisuje string u datoteku - ako je otvorena za pisanje (‘w’) briše se prethodni sadržaj; ako ne postoji, datoteka se kreira - ako je otvorena za dodavanje (‘a’) string se dodaje na kraj datoteke Zatvaranje datoteke Otvaranje: naziv = open(‘C: \. . . \naziv. txt’, ‘parametar’) Zapisivanje: dat. write(‘string’) Zatvaranje: dat. close() n – prelazak u novi red
2. Izradite program koji će… 1. 2. 3. 4. Otvoriti datoteku „C: . . . prva. txt” za čitanje Ispisati sav sadržaj datoteke u prozor Zatvoriti datoteku Ispisati poruku „…pritisni enter za izlaz…” • Spremite datoteku „čitanje. py“ na radnu površinu i pokrenite ju • DODATAK: 1. Promijenite read() u readline() i isprobajte program 2. Promijenite readline() u readlines() i isprobajte program
Metode kod čitanja datoteka read() readline() Sadržaj datoteke se pročita i vraća kao jedan string Čita i vraća kao string prvi redak datoteke (kraj reda označen je sa n, na kraju je prazan string) readlines() Datoteka se čita po recima i vraća se lista stringova pojedinih redaka (kraj svakog reda označen je sa n) close() Zatvaranje datoteke dat = open(‘C: \putanja\naziv. txt’, ‘parametar’) s = dat. read() – korištenje varijable kod čitanja datoteke
3. Izradite program koji će… 1. Otvoriti datoteku „prva. txt” za dodavanje sadržaja 2. Zapisati riječ „Upis“ na kraju datoteke u novi red 3. Zatvoriti datoteku • Spremite datoteku „upis. py“ na radnu površinu i pokrenite • Provjerite sadržaj datoteke „prva. txt”: – otvaranjem na disku – pokretanjem programa „čitanje. py”
Metode kod rada s datotekama read() readline() Sadržaj datoteke se pročita i vraća kao jedan string Čita i vraća kao string prvi redak datoteke (kraj reda označen je sa n, na kraju je prazan string) readlines() Datoteka se čita po recima i vraća se lista stringova pojedinih redaka (kraj svakog reda označen je sa n) write() Zapisuje string u datoteku - ako je otvorena za pisanje (‘w’) briše se prethodni sadržaj - ako je otvorena za dodavanje (‘a’) string se dodaje na kraj datoteke close() Zatvaranje datoteke
Priprema za 4. problem • Kako koristiti formatirani zapis? • print(‘Zbrojeva {0} i {1} je {2}’. format(a, b, a + b)) • Vitičaste zagrade - mjesta gdje se umeću podaci a, b, rezultat a + b • {n: . 2 f} – ispis (n+1)-tog člana liste na 2 decimale
Priprema za 4. problem • Napravite tekstualnu datoteku „ulaz. txt” na radnoj površini u mapi „vjezbe” koja u prvom redu sadrži 2 cijela broja odvojena jednim razmakom, npr. 3 2
4. Izradite program koji će… • Za 2 broja iz datoteke „ulaz. txt” ispisati u izlaznu datoteku „izlaz. txt” po redovima: – Zbroj tih brojeva – Razliku tih brojeva – Umnožak tih brojeva – Količnik tih brojeva (na 2 decimale) • Spremite datoteku „izračun. py” na radnu površinu i pokrenite • Provjerite sadržaj tekstualne datoteke „izlaz. txt”
Primjer Ulaz. txt 35 Izlaz. txt 8 -2 15 0, 60
Metode kod datoteka read() readline() Sadržaj datoteke se pročita i vraća kao jedan string Čita i vraća kao string prvi redak datoteke (kraj reda označen je sa n, na kraju je prazan string) readlines() Datoteka se čita po recima i vraća se lista stringova pojedinih redaka (kraj svakog reda označen je sa n) write() Zapisuje string u datoteku - ako je otvorena za pisanje (‘w’) briše se prethodni sadržaj - ako je otvorena za dodavanje (‘a’) string se dodaje na kraj datoteke writelines() Listu elemenata smješta u datoteku close() Zatvaranje datoteke split() Razdvaja string u niz stringova tj. listu
Rješenje ulaz = open('c: \. . . \ulaz. txt', 'r') izlaz = open('c: \. . . \izlaz. txt', 'w') s = ulaz. readline(). split() a = int(s[0]) b = int(s[1]) izlaz. write('{0}n'. format(a + b)) izlaz. write('{0}n'. format(a - b)) izlaz. write('{0}n'. format(a * b)) izlaz. write('{0: . 2 f}n'. format(a / b)) izlaz. close() ulaz. close()
Domaća zadaća • U svakom redu tekstualne datoteke „ulaz. txt” nalaze se podatci u sljedećem obliku: broj operator broj • Napišite program koji će u svaki red datoteke „izlaz. txt” ispisivati rezultat tako da na unesene brojeve primijeni operator • Operator može biti: +, -, *, /
Domaća zadaća • Primjer: Ulaz. txt 3*5 4+8 19 – 12 7/2 Izlaz. txt 15 12 7 3, 5
Domaća zadaća • Pomoć: – Pročitati sve redove datoteke – Koristiti for petlju i metodu. split() za razdvajanje članova u listu – Svaki od mogućih operatora sa if i elif grananjem usporediti sa 2. članom liste (tj. operatorom) – Gdje se ustanovi da su isti, izračunati dotičnu operaciju
Ponavljanje… • Koji su koraci kod rada s datotekom? • Koju metodu i parametar ćemo koristiti za kreiranje nove datoteke? • Kako zapisati sadržaj na kraj datoteke? • Koja je metoda za čitanje samo prvog reda datoteke? • Kako izbrisati sadržaj datoteke?
- Programska oprema za ispis
- Programska oprema za ispis
- Python datoteke
- 7 planeta
- Sikstinska kapela stvaranje adama
- Priručnik za upis djece u prvi razred
- Dodatni bodovi za upis na fakultet djeca branitelja
- Dodatni bodovi za upis u srednju školu
- Kriteriji za upis u srednju školu
- Agroturistički tehničar predmeti za upis
- Kompetencije medicinske sestre
- Kriteriji za upis u srednju školu
- Komprimiranje
- Znakovna datoteka
- Mape i datoteke
- Mape i datoteke
- Znakovne datoteke
- što su datoteke
- Programske datoteke
- Ideavirke
- Itsemurha lääkkeillä panacod
- Mikä on japanin alkuperäinen ja vanhin uskonto
- Mikä on rektio
- Sarjaankytkentä resistanssi
- Mika tammilehto