Ce face csv.Sniffer
Sniffer().sniff(text) analizează un eșantion (primele câteva mii de caractere) și returnează un dialect cu separatorul și ghilimelele deduse. has_header(text) estimează dacă primul rând este antet. Rezultatele sunt aproximative; pentru fișiere cu format cunoscut, dă opțiunile explicit.
Parametri
| Parametru | Descriere |
|---|---|
esantion |
Un fragment de text din fișier. |
delimiters |
Opțional. Separatorii posibili. |
Ce returnează
sniff: o clasă dialect. has_header: bool.
Exemple
Exemplul 1: Format detectat automat
import csv
esantion = "nume;oras;varsta\nAna;Iași;25\nDan;Cluj;31\n"
s = csv.Sniffer()
dialect = s.sniff(esantion, delimiters=";,")
print(repr(dialect.delimiter), s.has_header(esantion))
for rand in csv.reader(esantion.splitlines(), dialect):
print(rand)
Rezultat
';' True
['nume', 'oras', 'varsta']
['Ana', 'Iași', '25']
['Dan', 'Cluj', '31']
Greșeli frecvente
- Dai lui
sniffun eșantion prea mic sau neuniform și primeșticsv.Error: Could not determine delimiter. Dă un eșantion mai mare sau lista de separatori posibili.
Comenzi înrudite
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.csv.reader(): Citește un fișier CSV rând cu rând, fiecare rând ca listă de texte.