Curs Web Development
Curs HTML
Curs CSS
Curs Javascript
Curs PHP
Curs Phyton
Curs SQL
Curs SEO

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
Observație:
  • 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() sau readlines().

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())
Observație:
  • with creează 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

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.")
Observație:
  • Poți avea mai multe blocuri except pentru diferite tipuri de erori.
  • finally este 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")
Observație:
  • "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)
Observație:
  • 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ă.")
Provocare:
  • 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-except pentru a verifica dacă fișierul există înainte de citire.

🧠 Quiz - Fișiere și Tratarea Excepțiilor în Python

Top