csv.field_size_limit() în Python

CSV Python 3.0+

Citește sau schimbă lungimea maximă a unui câmp pe care cititorul CSV o acceptă.

Sintaxă
csv.field_size_limit([limita_noua])

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.