În această lecție, vom explora conceptele de bază legate de lucrul cu fișiere în Python. Vom discuta despre deschiderea și închiderea fișierelor, precum și despre citirea și scrierea în fișiere.
Deschiderea și închiderea fișierelor
Pentru a lucra cu fișiere în Python, trebuie să le deschidem și să le închidem în mod corespunzător. Deschiderea unui fișier se face cu ajutorul funcției open(), care returnează un obiect de tip fișier. Funcția open() necesită cel puțin un argument, și anume calea către fișierul pe care dorim să-l deschidem. De asemenea, ea poate primi și un al doilea argument, care specifică modul în care fișierul va fi deschis (de exemplu, pentru citire, scriere sau adăugare).
Iată câteva exemple de deschidere a unui fișier cu diferite moduri:
# Deschiderea unui fișier pentru citire (implicit)
fisier = open("exemplu.txt", "r")
# Deschiderea unui fișier pentru scriere
fisier = open("exemplu.txt", "w")
# Deschiderea unui fișier pentru adăugare
fisier = open("exemplu.txt", "a")
# Deschiderea unui fișier pentru citire și scriere
fisier = open("exemplu.txt", "r+")
După ce am terminat lucrul cu un fișier, este important să-l închidem pentru a elibera resursele sistemului și a ne asigura că toate modificările sunt scrise pe disc. Pentru a închide un fișier, utilizăm metoda close() a obiectului fișier:
fisier.close()
Citirea și scrierea în fișiere
După ce am deschis un fișier, putem citi sau scrie în el, în funcție de modul în care a fost deschis.
Citirea din fișiere
Pentru a citi conținutul unui fișier, putem folosi una dintre următoarele metode:
read(): Această metodă citește tot conținutul fișierului și îl returnează ca un șir de caractere.
fisier = open("exemplu.txt", "r")
continut = fisier.read()
print(continut)
fisier.close()
readline(): Această metodă citește o singură linie din fișier.
fisier = open("exemplu.txt", "r")
linie = fisier.readline()
print(linie)
fisier.close()
readlines(): Această metodă citește toate liniile din fișier și le returnează ca o listă de șiruri de caractere.
fisier = open("exemplu.txt", "r")
linii = fisier.readlines()
for linie in linii:
print(linie.strip())
fisier.close()
Scrierea în fișiere
Pentru a scrie într-un fișier, folosim metoda write() a obiectului fișier. Aceasta primește un șir de caractere ca argument și îl scrie în fișier, returnând numărul de caractere scrise.
fisier = open("exemplu.txt", "w")
fisier.write("Acesta este un exemplu.n")
fisier.write("Acum scriem într-un fișier.n")
fisier.close()
Rețineți că atunci când deschidem un fișier în modul de scriere ("w"), acesta va fi suprascris și tot conținutul său anterior va fi șters. Dacă dorim să adăugăm conținut la un fișier existent, fără a-l șterge, putemdeschide fișierul în modul de adăugare ("a").
fisier = open("exemplu.txt", "a")
fisier.write("Aceasta este o nouă linie adăugată la fișier.n")
fisier.close()
Lucrul cu fișiere folosind with
O modalitate mai elegantă și sigură de a lucra cu fișiere în Python este să folosim construcția with, care se ocupă automat de închiderea fișierului în cazul în care apare o excepție sau atunci când blocul de cod de sub with este terminat.
Iată cum putem folosi with pentru a citi și scrie în fișiere:
Citirea din fișiere cu with
with open("exemplu.txt", "r") as fisier:
continut = fisier.read()
print(continut)
În acest caz, nu mai este nevoie să apelăm fisier.close() explicit, deoarece with se va ocupa de închiderea fișierului la sfârșitul blocului de cod.
Scrierea în fișiere cu with
with open("exemplu.txt", "w") as fisier:
fisier.write("Acesta este un exemplu.n")
fisier.write("Acum scriem într-un fișier folosind `with`.n")
La fel ca în cazul citirii, nu mai este nevoie să închidem explicit fișierul, deoarece with se va ocupa de aceasta.
În concluzie, lucrul cu fișiere în Python este un aspect important și comun în dezvoltarea de aplicații, iar înțelegerea conceptelor de bază prezentate în această lecție este esențială. Deschiderea și închiderea fișierelor, citirea și scrierea în fișiere și utilizarea construcției with sunt instrumente fundamentale pe care dezvoltatorii Python ar trebui să le stăpânească.