Să citească întregul conținut al unui fișier cu read()
să citească întregul conținut al unui fișier cu read().
read(), readline(), readlines() și parcurgerea liniilor
să citească întregul conținut al unui fișier cu read().
să citească o linie cu readline().
să obțină liniile cu readlines().
să parcurgă liniile unui fișier cu for.
Ce metodă citește întregul conținut?
După deschidere, fișierul poate fi citit. read() returnează conținutul ca text; readline() citește o linie; readlines() returnează liniile într-o listă.
Citirea se realizează de la poziția curentă din fișier. După readline(), următoarea citire continuă de la linia următoare.
Pentru prelucrarea tuturor liniilor, forma for linie in f este naturală și evită încărcarea inutilă a întregului fișier în memorie.
De ce folosim strip()?
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.
Alege situația.
Rezultatul va apărea aici.
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()f = open("date.txt", "r")
for linie in f:
print(linie.strip())
f.close()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 ALGORITMread() 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().
Problemă: Fișierul note.txt conține câte o notă pe fiecare linie. Determină suma și media.
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 ALGORITMf = 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.
readlines() cu parcurgerea directă prin fișier.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?
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.
Verifică implementarea, rezultatul fișierelor și testele relevante înainte de finalizare.