28.01.2015 Views

Tutorial Python - Starship

Tutorial Python - Starship

Tutorial Python - Starship

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

7.2.1 Metodele obiectelor fişier<br />

Exemplele acestei secţiuni vor presupune că un obiect ’f’ de tip fişier a fost deja creat, deci fişierul a fost deja<br />

deschis.<br />

Pentru a citi conţinutul unui fişier apelaţi f.read(dimensiune), care citeşte o cantitate de date şi o returnează<br />

ca string. Parametrul dimensiune este opţional. Atunci când acest parametru este omis sau este negativ, întregul<br />

fişier va fi citit şi returnat ca şir de caractere. Apare o problemă, bineînţeles, dacă memoria maşinii dumneavoastră<br />

este mai mică decât dimensiunea fişierului. Dacă parametrul dimensiune este transmis funcţiei, atunci din fişier<br />

vor fi citiţi cel mult atâţia octeţi câţi sunt specificaţi prin acest parametru.<br />

Dacă s-a ajuns la sfârşitul fişierului f.read() va returna un şir vid(" "):<br />

>>> f.read()<br />

’This is the entire file.\n’<br />

>>> f.read()<br />

’’<br />

Metoda f.readline() citeşte o singură linie din fişier. Un caracter ”linie nouă”(newline), ”\n”, este adăugat<br />

la sfârşitul fiecărui şir. Acest caracter este omis dacă este vorba despre ultima linie din fişier şi dacă acesta nu se<br />

termină cu un caracter ”linie nouă”. Toate acestea fac rezultatul neclar. Dacă rezultatul este un şir gol, atunci a<br />

fost atins sfârşitul fişierului, în timp ce dacă rezultatul este doar caracterul ”\n” înseamnă că din fişier a fost citită<br />

o linie goală:<br />

>>> f.readline()<br />

’This is the first line of the file.\n’<br />

>>> f.readline()<br />

’Second line of the file\n’<br />

>>> f.readline()<br />

’’<br />

Metoda f.readlines() a obiectelor de tip fişier, întoarce o listă conţinând toate liniile din fişier. Dacă metoda<br />

este apelată cu argumentul dimensiune, atunci din fişier sunt citiţi atâţia octeţi câţi sunt specificaţi prin acest<br />

parametru şi încă atâţia octeţi câţi sunt necesari pentru a completa o linie. Această metodă este folosită pentru<br />

citirea eficientă pe linii a fişierelor de dimensiuni mari fără a întâmpina dificultăţi cu memoria. Vor fi returnate<br />

numai linii complete:<br />

>>> f.readlines()<br />

[’This is the first line of the file.\n’, ’Second line of the file\n’]<br />

Metoda f.write(şir) scrie conţinutul şirului de caractere în fişier, întorcănd, ca rezultat, None:<br />

>>> f.write(’This is a test\n’)<br />

Dacă se doreşte scrierea a altceva dacât şir de caractere, atunci, mai îtâi, acesta trebuie convertit in şir :<br />

>>> value = (’the answer’, 42)<br />

>>> s = str(value)<br />

>>> f.write(s)<br />

Metoda f.tell() are ca rezultat un număr întreg reprezentând poziţia cursorului în fişier, poziţie<br />

măsurată în octeţi faţă de începutul fişierului. Pentru a schimba poziţia cursorului folosiţi metoda<br />

f.seek(deplasare,referinţă). Noua poziţie este calculată în felul următor: cursorul va fi deplasat<br />

cu deplasare octeţi, faţă de începutul fişierului dacă referinţă este 0, faţă de poziţia curentă a cursorului<br />

48 Capitolul 7. Intrări şi ieşiri

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

Saved successfully!

Ooh no, something went wrong!