Gestionarea Fișierelor în Python
Citirea și Scrierea Fișierelor Text în Python
Python oferă metode simple pentru a citi și scrie fișiere text. Aceste operații sunt esențiale pentru salvarea datelor, loguri, configurări sau exporturi.
Scrierea într-un fișier
f = open("fisier.txt", "w")
f.write("Salut, Ioan!")
f.close()
Citirea dintr-un fișier
f = open("fisier.txt", "r")
continut = f.read()
print(continut)
f.close()
Moduri de deschidere
"r" # citire
"w" # scriere (suprascrie)
"a" # adăugare
"r+" # citire și scriere
- Fișierele trebuie închise manual cu
close()pentru a elibera resursele. - Modul
"w"va șterge conținutul existent. - Poți citi fișierul linie cu linie cu
readline()saureadlines().
Deschiderea fișierelor cu with open() în Python
Instrucțiunea with open() este cea mai sigură și recomandată metodă de lucru cu fișiere în
Python. Ea gestionează automat închiderea fișierului, chiar dacă apar erori.
Scriere cu with open()
with open("fisier.txt", "w") as f:
f.write("Salut, Ioan!")
Citire cu with open()
with open("fisier.txt", "r") as f:
continut = f.read()
print(continut)
Citire linie cu linie
with open("fisier.txt", "r") as f:
for linie in f:
print(linie.strip())
withcreează un context care se închide automat la final.- Este ideal pentru evitarea erorilor legate de fișiere deschise.
- Funcționează cu toate modurile:
"r","w","a","r+".
Tratarea excepțiilor cu try, except, finally
În Python, erorile pot fi gestionate elegant folosind blocurile try, except și
finally. Acestea permit controlul comportamentului programului în caz de excepții.
Exemplu simplu
try:
f = open("fisier_inexistent.txt", "r")
except FileNotFoundError:
print("Fișierul nu a fost găsit.")
finally:
print("Operațiunea s-a încheiat.")
Explicații
try: codul care poate genera o excepție.except: codul care se execută dacă apare o excepție.finally: codul care se execută indiferent dacă a apărut sau nu o excepție.
Mai multe tipuri de excepții
try:
x = int(input("Introdu un număr: "))
rezultat = 10 / x
except ValueError:
print("Nu ai introdus un număr valid.")
except ZeroDivisionError:
print("Împărțirea la zero nu este permisă.")
finally:
print("Gata cu calculul.")
- Poți avea mai multe blocuri
exceptpentru diferite tipuri de erori. finallyeste opțional, dar util pentru curățare (ex. închiderea fișierelor).- Este o practică bună să tratezi excepțiile pentru a evita blocarea programului.
Salvarea datelor în fișiere
Pentru a salva date în fișiere, folosim modul "w" (scriere) sau "a" (adăugare).
Acestea creează fișierul dacă nu există.
Scriere simplă
with open("date.txt", "w") as f:
f.write("Nume: Ioan\nVârstă: 25")
Adăugare de conținut
with open("date.txt", "a") as f:
f.write("\nOraș: Bacău")
"w"suprascrie tot fișierul."a"adaugă la finalul fișierului.- Poți salva orice tip de text: rezultate, setări, loguri etc.
Citirea și scrierea JSON și CSV
Python oferă suport nativ pentru lucrul cu fișiere .json și .csv, folosite frecvent
în aplicații web, baze de date și analiză de date.
JSON - JavaScript Object Notation
import json
# Salvare în fișier JSON
date = {"nume": "Ioan", "varsta": 25}
with open("date.json", "w") as f:
json.dump(date, f)
# Citire din fișier JSON
with open("date.json", "r") as f:
incarcat = json.load(f)
print(incarcat)
CSV - Comma-Separated Values
import csv
# Scriere în fișier CSV
with open("date.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["Nume", "Vârstă"])
writer.writerow(["Ioan", 25])
# Citire din fișier CSV
with open("date.csv", "r") as f:
reader = csv.reader(f)
for linie in reader:
print(linie)
json.dump()salvează un dicționar în fișier.json.load()încarcă datele înapoi ca dicționar.csv.writer()scrie linii în format tabelar.csv.reader()citește fiecare linie ca listă.
Exerciții practice
Exersează lucrul cu fișiere în Python prin următoarele provocări. Poți testa codul direct în editorul tău.
1. Scrie un fișier cu datele tale
with open("profil.txt", "w") as f:
f.write("Nume: Ioan\nVârstă: 25\nOraș: Bacău")
2. Citește și afișează conținutul fișierului
with open("profil.txt", "r") as f:
print(f.read())
3. Salvează un dicționar în format JSON
import json
date = {"nume": "Ioan", "email": "ioan@example.com"}
with open("profil.json", "w") as f:
json.dump(date, f)
4. Creează un fișier CSV cu mai mulți utilizatori
import csv
utilizatori = [
["Nume", "Vârstă", "Oraș"],
["Ioan", 25, "Bacău"],
["Maria", 30, "Cluj"],
["Andrei", 22, "Iași"]
]
with open("utilizatori.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerows(utilizatori)
5. Tratează o excepție la citirea unui fișier inexistent
try:
with open("inexistent.txt", "r") as f:
print(f.read())
except FileNotFoundError:
print("Fișierul nu există.")
- Creează un program care citește un fișier linie cu linie și numără câte linii conține.
- Scrie un fișier care salvează scorurile unui joc și le citește ulterior.
- Folosește
try-exceptpentru a verifica dacă fișierul există înainte de citire.
🧠 Quiz - Fișiere și Tratarea Excepțiilor în Python