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 modululcsv. - 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.