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: