csv.reader() în Python

CSV Python 3.0+

Citește un fișier CSV rând cu rând, fiecare rând ca listă de texte.

Sintaxă
with open(fisier, newline="", encoding="utf-8") as f:
    for rand in csv.reader(f, delimiter=","):
        ...

Ce face csv.reader()

csv.reader(f) parcurge fișierul și produce fiecare rând ca listă de texte, tratând corect valorile între ghilimele, virgulele din interiorul valorilor și rândurile noi din câmpuri. Toate valorile sunt texte; numerele trebuie transformate.

Deschide fișierul cu newline="", cum cere documentația, și cu codificarea potrivită. Fișierele exportate din Excel în română folosesc des ; ca separator: dă delimiter=";". Fișierele cu BOM se deschid cu encoding="utf-8-sig".

Parametri

Parametru Descriere
fisier Un fișier deschis sau orice iterabil de rânduri text.
delimiter, quotechar, dialect... Opțiuni de format.

Ce returnează

Un iterator de liste.

Exemple

Exemplul 1: Citire cu antet

import csv
with open("elevi.csv", "w", encoding="utf-8", newline="") as f:
    f.write('nume,oras,medie\nAna,Iași,9.50\n"Popescu, Dan",Cluj,8.75\n')
with open("elevi.csv", encoding="utf-8", newline="") as f:
    cititor = csv.reader(f)
    antet = next(cititor)
    print(antet)
    for nume, oras, medie in cititor:
        print(nume, "|", oras, "|", float(medie))

Rezultat

['nume', 'oras', 'medie']
Ana | Iași | 9.5
Popescu, Dan | Cluj | 8.75

Exemplul 2: Separator punct și virgulă

import csv
randuri = ["produs;preț;stoc", "Pâine;4,50;20", "Cafea;32,90;5"]
for rand in csv.reader(randuri, delimiter=";"):
    print(rand)

Rezultat

['produs', 'preț', 'stoc']
['Pâine', '4,50', '20']
['Cafea', '32,90', '5']

Greșeli frecvente

  • Împarți rândurile cu split(","). Valorile cu virgule între ghilimele ("Popescu, Dan") se rup greșit; folosește modulul csv.
  • Uiți newline="" și apar rânduri goale sau câmpuri cu rânduri noi stricate pe Windows.

Comenzi înrudite

  • csv.DictReader: Citește un CSV cu antet, fiecare rând ca dicționar {coloană: valoare}.
  • csv.writer(): Scrie liste de valori într-un fișier CSV, cu ghilimele puse automat unde trebuie.
  • open() și with: Deschide un fișier pentru citire sau scriere; cu with, fișierul este închis automat.