12.07.2015 Views

Python

Python

Python

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

78 Ulaz i izlaz9.2 DatotekeUgražena funkcija open(name [,mode ]) otvara i stvara datoteke, kao ²to sljedi:f = open('foo')f = open('foo','w')# Otvara 'foo' za citanje# Otvara za pisanjeNa£ini otvaranja datoteke (engl. le) su 'r' za £itanje (eng. read), 'w' za pisanje (engl. write), ili 'a'za dodavanje sadrºaja u ve¢ postoje¢u datoteku (eng. append). Binarni podatci spremaju se u datotekus oznakom 'b', pa vrijedi 'rb' kao na£in £itanja binarnih podataka, a 'wb' kao na£in spremanja inarnihpodataka. To je opcionalno u UNIX-u, ali nuºno na Windows-ima, gdje se treba uklju£iti kako bi sepostigla prenosivost s jednog sustava na drugi. Uz to, datoteka se moºe otvoriti za aºuriranje (eng.update) koriste¢i znak (+) character, pa vrijedi 'r+' ili 'w+'. U slu£aju otvaranja datoteke za aºuriranje,mogu¢e je izvr²iti i ulaz i izlaz podataka, dok god svaka izlazna operacija sprema iz memorije (engl.flush) svoje podatke u datoteku, prije bilo koje ulazne operacije. Ako je datoteka otvorena sa ' w+'onda se na po£etku njena duljina pretvara u nulu (bri²e se sadrºaj). open() vra¢a objekt datoteke (eng.file object) koji podrºava methode prikazane u tablici 9.1:Tablica 9.1: Metode s datotekamaMetodeOpisf.read([n])£ita najvi²e n okteta (engl. bytes)f.readline([n])£ita jednu ulaznu liniju do najvi²e n znakova.Ako se n iizostavi, onda £ita cijelu liniju.f.readlines()£ita sve linije i vra¢a listu.f.xreadlines()Returns an opaque sequence object whereeach iteration reads a new line from the le.f.write(s) Upisuje u datoteku string s .f.writelines(l ) Upisuje u datoteku sve stringove iz liste l .f.close()Zatvara datoteku.f.tell()Vra¢a trenuta£no kazalo (brojilo znakova)datoteke.f.seek(offset [, where ]) Traºi novu poziciju u datoteci.f.isatty()Vra¢a 1 ako je f interactivni terminal.f.flush()Sprema (eng. ushes) izlazni mem. bufer udatoteku.f.truncate([size]) Skra¢uje datoteku na najvi²e size okteta.f.fileno()Vra¢a cjelobrojni identikator datoteke.f.readinto(buffer,nbytes)U£itava nbytes podataka iz memorijskog buerobjekta.Metoda read() vra¢a £itavu datoteku kao jedan string, osim ako je zadan jedan proizvoljan parametarlength kojim se odreºuje maksimalna duljina u£itanih okteta. Metoda readline() vr¢a sljede¢uliniju ulaza, uklju£uju¢i i znak zavr²etka linije (eng. newline terminator); metoda readlines() vra¢asve ulazne linije kao listu stringova. Metoda readline() dodatno prhva¢a makismalnu duljinu linije n.Ako je linija duºa od n okteta, frunkcija vra¢a samo n u£itanih okteta. Ostatak podataka na liniji se nebri²e, ve¢ se u£itava u idu¢im £itanjima. Obje metode: readline() i readlines() ovise o operacijskomsustavu te obražuju na razli£ite na£ine zavr²etke linija (na primjer, 'n' u odnosu na 'rn'). Metoda xreadlines()vra¢a poseban objekt koji omogu¢uje u£itavanje linija datoteke iteracijskimpostupkom, umjesto cjelokupnog u£itavanja linija odjednom u memoriju, kao ²to to radireadlines() metoda. Na primjer:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!