Python Stvaranje upis i ispis datoteke Marko Mika

  • Slides: 24
Download presentation
Python - Stvaranje, upis i ispis datoteke - Marko Mikša, mag. inf.

Python - Stvaranje, upis i ispis datoteke - Marko Mikša, mag. inf.

Uvod • Što je string? – Proizvoljni znakovni niz • Kako tj. gdje zapisati

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

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

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’,

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 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

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;

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

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 -

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: . .

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

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.

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

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}

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

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

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

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

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: \.

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

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

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

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

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?