Ce face csv.writer()
csv.writer(f) returnează un obiect cu metodele writerow(lista) (un rând) și writerows(liste) (mai multe). Valorile care conțin separatorul, ghilimele sau rânduri noi sunt puse automat între ghilimele.
quoting controlează ghilimelele: QUOTE_MINIMAL (implicit), QUOTE_ALL, QUOTE_NONNUMERIC, QUOTE_NONE, iar din 3.12 QUOTE_STRINGS și QUOTE_NOTNULL. Pentru Excel în română, delimiter=";" și encoding="utf-8-sig" (cu BOM) fac ca diacriticele și coloanele să apară corect.
Parametri
| Parametru | Descriere |
|---|---|
fisier |
Fișierul deschis pentru scriere, cu newline="". |
delimiter, quoting... |
Opțiuni de format. |
Ce returnează
Un obiect writer.
Exemple
Exemplul 1: Export pentru Excel
import csv
from pathlib import Path
produse = [["Pâine", 4.5, 20], ['Cafea "Arabica"', 32.9, 5], ["Lapte; 1L", 7, 0]]
with open("produse.csv", "w", encoding="utf-8", newline="") as f:
w = csv.writer(f, delimiter=";")
w.writerow(["produs", "preț", "stoc"])
w.writerows(produse)
print(Path("produse.csv").read_text(encoding="utf-8"))
Rezultat
produs;preț;stoc
Pâine;4.5;20
"Cafea ""Arabica""";32.9;5
"Lapte; 1L";7;0
Exemplul 2: Moduri de ghilimele
import csv, io
for mod in ["QUOTE_MINIMAL", "QUOTE_ALL", "QUOTE_NONNUMERIC", "QUOTE_STRINGS"]:
buf = io.StringIO()
csv.writer(buf, quoting=getattr(csv, mod)).writerow(["Ana", 25, None, "a,b"])
print(f"{mod:17}", buf.getvalue(), end="")
Rezultat
QUOTE_MINIMAL Ana,25,,"a,b"
QUOTE_ALL "Ana","25","","a,b"
QUOTE_NONNUMERIC "Ana",25,"","a,b"
QUOTE_STRINGS "Ana",25,,"a,b"
Greșeli frecvente
- Deschizi fișierul fără
newline=""și pe Windows apare un rând gol după fiecare rând.
Comenzi înrudite
csv.DictWriter: Scrie dicționare într-un CSV, cu coloanele în ordinea aleasă.csv.reader(): Citește un fișier CSV rând cu rând, fiecare rând ca listă de texte.Dialecte CSV: excel, excel_tab, unix_dialect și register_dialect(): Seturi de reguli de format (separator, ghilimele, capăt de rând) salvate sub un nume.