Ce face csv.field_size_limit()
Ca protecție, cititorul CSV refuză câmpurile mai lungi de 131 072 de caractere. Fișierele cu texte foarte lungi (articole, JSON în celule) dau eroarea field larger than field limit. field_size_limit(n) setează o limită nouă și returnează limita veche; fără argument, doar returnează limita curentă.
Parametri
| Parametru | Descriere |
|---|---|
limita_noua |
Opțional. Noua lungime maximă. |
Ce returnează
Limita anterioară.
Exemple
Exemplul 1: Câmpuri foarte lungi
import csv
rand = "id,text\n1," + "a" * 200_000 + "\n"
print(csv.field_size_limit())
try:
list(csv.reader(rand.splitlines()))
except csv.Error as e:
print("Eroare:", e)
veche = csv.field_size_limit(1_000_000)
print(veche, len(list(csv.reader(rand.splitlines()))[1][1]))
Rezultat
131072
Eroare: field larger than field limit (131072)
131072 200000
Greșeli frecvente
- Setezi o limită uriașă pentru fișiere venite de la utilizatori. Un fișier rău intenționat poate consuma toată memoria; alege o limită rezonabilă.
Comenzi înrudite
csv.reader(): Citește un fișier CSV rând cu rând, fiecare rând ca listă de texte.