Python clasa a 9-a · Manual Python
Laborator Python
LECȚIE · CAPITOLUL 6

6.2 — Citirea din fișiere text

read(), readline(), readlines() și parcurgerea liniilor

DESCHIDE
→
CITEȘTE
→
TRANSFORMĂ
→
PRELUCREAZĂ
01
OBIECTIVE

La finalul lecției vei putea...

01

Să citească întregul conținut al unui fișier cu read()

să citească întregul conținut al unui fișier cu read().

02

Citească o linie cu readline()

să citească o linie cu readline().

03

Obțină liniile cu readlines()

să obțină liniile cu readlines().

04

Parcurgă liniile unui fișier cu for

să parcurgă liniile unui fișier cu for.

✓
Checkpoint

Ce metodă citește întregul conținut?

02
EXPLICAȚIE

6.2 — Citirea din fișiere text

După deschidere, fișierul poate fi citit. read() returnează conținutul ca text; readline() citește o linie; readlines() returnează liniile într-o listă.

Cursorul de citire

Citirea se realizează de la poziția curentă din fișier. După readline(), următoarea citire continuă de la linia următoare.

Parcurgerea liniilor

Pentru prelucrarea tuturor liniilor, forma for linie in f este naturală și evită încărcarea inutilă a întregului fișier în memorie.

✓
Checkpoint

De ce folosim strip()?

03
EXEMPLU INTUITIV

Construim intuiția înaintea problemei

Un profesor citește un catalog. Poate citi tot catalogul deodată, o singură pagină sau poate parcurge pagină cu pagină. Cele trei situații sugerează read(), readline() și parcurgerea liniilor.

Ce metodă alegi?

Alege situația.

Curăță o linie

Rezultatul va apărea aici.

04
PYTHON

Sintaxa și exemplele de bază

read()

f = open("date.txt", "r")
continut = f.read()
f.close()
print(continut)

readline()

f = open("date.txt", "r")
linie = f.readline()
print(linie)
f.close()

Parcurgerea

f = open("date.txt", "r")
for linie in f:
    print(linie.strip())
f.close()
05
ALGORITM / PSEUDOCOD

Descrierea algoritmului

ALGORITM CitireLinii
    deschide fișierul pentru citire
    pentru fiecare linie din fișier execută
        prelucrează linia
    sfârșit pentru
    închide fișierul
SFÂRȘIT ALGORITM
06
ATENȚIE!

Erori frecvente și cazuri importante

read() poate încărca un fișier mare în memorie; pentru prelucrare linie cu linie este preferabilă parcurgerea directă.

readline() poate include caracterul de sfârșit de linie, de aceea strip() este util când avem nevoie de textul fără acel caracter.

Datele citite din fișier sunt text; pentru calcule numerice folosim int() sau float().

07
EXEMPLU REZOLVAT

Problemă completă

Problemă: Fișierul note.txt conține câte o notă pe fiecare linie. Determină suma și media.

Analiză

Citirea produce șiruri de caractere; fiecare linie trebuie transformată în int. Acumulăm suma și numărăm valorile.

ALGORITM CitireLinii
    deschide fișierul pentru citire
    pentru fiecare linie din fișier execută
        prelucrează linia
    sfârșit pentru
    închide fișierul
SFÂRȘIT ALGORITM

Algoritm / pseudocod

Python

f = open("note.txt", "r")
suma = 0
n = 0
for linie in f:
    nota = int(linie.strip())
    suma += nota
    n += 1
f.close()

if n > 0:
    print("Suma:", suma)
    print("Media:", suma / n)
else:
    print("Fișierul este gol.")

Urmărire pentru 8, 9, 10: suma devine 8 → 17 → 27, iar n devine 1 → 2 → 3. Media este 9. Testăm și fișierul gol.

08
EXERCIȚII DE BAZĂ

Aplică direct

  1. 1. Afișează întregul conținut al unui fișier.
  2. 2. Citește prima linie și afișeaz-o.
  3. 3. Afișează toate liniile fără caracterul de sfârșit de linie.
  4. 4. Numără liniile unui fișier.
  5. 5. Calculează suma numerelor memorate pe linii.
09
EXERCIȚII DE APROFUNDARE

Analizează și extinde

  1. 1. Determină minimul și maximul valorilor dintr-un fișier.
  2. 2. Numără câte valori sunt pare.
  3. 3. Determină media doar pentru valorile pozitive.
  4. 4. Compară readlines() cu parcurgerea directă prin fișier.
10
VERIFICARE

Quiz final

1. Ce returnează read()?

2. Ce returnează readlines()?

3. Ce metodă citește o singură linie?

4. Ce face for linie in f?

5. De ce folosim int(linie.strip())?

6. Ce caz trebuie tratat separat la calcularea mediei?

11
MINI-PROIECT

Analizor de note

MISIUNE

Analizor de note

Mini-proiect – „Analizor de note”. Citește un fișier cu note, determină numărul de note, suma, media, minimul și maximul. Tratează separat cazul unui fișier gol și testează cu cel puțin trei seturi de date.

Cerințe

citire linie cu linie01
strip + int02
sumă și numărare03
fișier gol04
minimum trei seturi de test05

Ai terminat lecția?

Verifică implementarea, rezultatul fișierelor și testele relevante înainte de finalizare.