csv – Citirea și scrierea fișierelor CSV¶

Conținutul modulului¶

csv modulul definește următoarele funcții:

csv.reader(csvfile, dialect = „excel”, ** fmtparams ) ¶

Returnează un obiect cititor care va itera peste liniile din csvfile.csvfile dat poate fi orice obiect care acceptă protocolul iterator și returnează astring de fiecare dată când se numește metoda __next__() – obiectele fișier și obiectele listei sunt ambele potrivite. Dacă csvfile este un obiect fișier, ar trebui să fie deschis cu newline="". 1 Se poate da un parametru opțional dialect care este utilizat pentru a defini un set de parametri specifici unui anumit dialect CSV. Poate fi o instanță a unei subclase din clasa Dialect sau una dintre șirurile returnate de funcția list_dialects(). Celelalte argumente opționale ale cuvintelor cheie fmtparams pot fi date pentru a suprascrie parametrii individuali de formatare din dialectul curent. Pentru detalii complete despre dialect și parametrii de formatare, consultați secțiunea Dialecte și parametri de formatare.

Fiecare rând citit din fișierul CSV este returnat ca o listă de șiruri. Nu se efectuează conversie automată a tipului de date, cu excepția cazului în care este specificată opțiunea QUOTE_NONNUMERIC (caz în care câmpurile necotate sunt transformate în flotante).

Un scurt exemplu de utilizare:

csv.writer(csvfile, dialect = „excel”, ** fmtparams) ¶

Returnează un obiect scriitor responsabil de conversia datele utilizatorului în șiruri delimitate pe obiectul asemănător fișierului. csvfile poate fi orice obiect cu o metodă write(). Dacă csvfile este un obiect de fișier, ar trebui să fie deschis cu newline="" 1. Se poate da un parametru de dialect opțional care este utilizat pentru a defini un set de parametri specifici dialectului CSV particular. Poate fi o instanță a unei subclase din clasa Dialect sau una dintre șirurile returnate de funcția list_dialects(). Celelalte argumente opționale ale cuvintelor cheie fmtparams pot fi date pentru a suprascrie parametrii individuali de formatare din dialectul curent. Pentru detalii complete despre dialect și parametrii de formatare, consultați secțiunea Dialecte și parametri de formatare. Pentru a face cât mai ușoară interfața cu modulele care implementează API-ul DB, valoarea None este scrisă ca șirul gol. Deși aceasta nu este o transformare inversabilă, este mai ușor să descărcați valorile de date SQL NULL în fișierele CSV fără a preprocesa datele returnate dintr-un apel cursor.fetch*. Toate celelalte date non-string sunt strânse cu str() înainte de a fi scris.

Un scurt exemplu de utilizare:

csv.register_dialect(nume]) ¶

Asociați dialectul cu numele. numele trebuie să fie un șir. Dialectul poate fi specificat fie prin trecerea unei sub-clase de Dialect, fie prin argumente de cuvinte cheie fmtparams, sau ambele, cu argumente de cuvinte cheie care suprascriu parametrii dialectului. Pentru detalii complete despre dialect și parametrii de formatare, consultați secțiunea Dialecte și parametri de formatare.

csv.unregister_dialect(nume) ¶

Ștergeți dialectul asociat cu numele din registrul de dialecte. Un Error este ridicat dacă numele nu este un nume de dialect înregistrat.

csv.get_dialect(nume) ¶

Returnează dialectul asociat cu numele. Un Error este ridicat dacă numele nu este un nume de dialect înregistrat. Această funcție returnează un Dialect imuabil.

csv.list_dialects() ¶

Returnează numele tuturor dialectelor înregistrate.

csv.field_size_limit() ¶

Returnează dimensiunea maximă actuală a câmpului permis de analizor. Dacă se dă new_limit, aceasta devine noua limită.

Modulul csv definește următoarele clase:

classcsv.DictReader(f, fieldnames = None, restkey = None, restval = None, dialect = „excel”, * args, ** kwds) ¶

Creați un obiect care funcționează ca un cititor obișnuit, dar mapează informațiile din fiecare rând la un dict ale cărui chei sunt date de parametrul opțional fieldnames.

Parametrul fieldnames este o secvență. Dacă numele de câmp sunt omise, valorile din primul rând al fișierului f vor fi utilizate ca nume de câmp. Indiferent de modul de determinare a numelor de câmp, dicționarul își păstrează ordonarea inițială.

Dacă un rând are mai multe câmpuri decât nume de câmp, datele rămase sunt puse în listă și stocate cu numele câmpului specificat de restkey id = „bd38dcefe8”> ). Dacă un rând care nu este gol are mai puține câmpuri decât numele câmpurilor, valorile care le lipsesc sunt completate cu valoarea restval (care implicit None).

Toate celelalte argumente opționale sau cuvinte cheie sunt transmise instanței reader subiacente.

Modificate în versiunea 3.6: rândurile returnate sunt acum de tip OrderedDict.

Modificat în versiunea 3.8: rândurile returnate sunt acum de tip dict.

Un scurt exemplu de utilizare:

classcsv.DictWriter( f, fieldnames, restval = „”, extrasaction = „raise”, dialect = „excel”, * args, ** kwds) ¶

Creați un obiect care funcționează ca un scriitor obișnuit, dar mapează dicționare pe rânduri de ieșire. Parametrul fieldnames este un sequence de chei care identifică ordinea în care valorile din dicționar trecute la metoda writerow() sunt scrise în filef. Parametrul opțional restval specifică valoarea care trebuie scrisă în cazul în care în dicționar lipsește o cheie în numele câmpurilor. Dacă dicționarul trecut la metoda writerow() conține o cheie care nu a fost găsită în nume de câmp, parametrul opțional de extracțiune indică ce acțiune trebuie luată. Dacă este setat la "raise", valoarea implicită, este ridicat un ValueError. Dacă este setat la "ignore", valorile suplimentare din dicționar sunt ignorate. argumentele opționale sau de cuvinte cheie sunt transmise instanței writer subiacente.

Rețineți că spre deosebire de clasa DictReader, numele câmpurilor parametrul clasei DictWriter nu este opțional.

Un scurt exemplu de utilizare:

clasacsv.Dialect

Clasa Dialect este o clasă de containere pe care se bazează în principal pentru atributele sale, care sunt utilizate pentru a defini parametrii pentru un anumit reader sau writer instanță.

classcsv.excel

Clasa excel definește proprietățile uzuale ale unui fișier CSV generat de Excel. Este înregistrat cu numele dialectului "excel".

classcsv.excel_tab

Clasa excel_tab definește proprietățile uzuale ale unui fișier delimitat de TAB generat de Excel. Este înregistrat cu numele dialectului "excel-tab".

classcsv.unix_dialect

Clasa unix_dialect definește proprietățile uzuale ale unui fișier CSV generat pe sistemele UNIX, adică folosind "\n" ca terminator de linie și citând toate câmpurile. Este înregistrat cu numele dialectului "unix".

Nou în versiunea 3.2.

clasacsv.Sniffer

Clasa Sniffer este utilizată pentru a deduce formatul unui fișier CSV.

Clasa Sniffer oferă două metode:

sniff(eșantion, delimitatori = Niciuna) ¶

Analizează eșantionul dat și returnează o Dialect subclasă care reflectă parametrii găsiți. Dacă parametrul delimitator opțional este dat, acesta este interpretat ca un șir care conține posibile caractere validdelimiter.

has_header(eșantion) ¶

Analizează textul eșantionului (se presupune că este în Format CSV) și returnează True dacă primul rând pare a fi o serie de anteturi de coloană.

Un exemplu pentru Sniffer use:

Modulul csv definește următoarele constante:

csv.QUOTE_ALL

Instruiește writer obiectelor să citeze toate câmpurile.

csv.QUOTE_MINIMAL

Instruiește obiectele writer să citeze numai acele câmpuri care conțin caractere speciale precum delimitator, quotechar sau oricare dintre caracterele inlineterminator.

csv.QUOTE_NONNUMERIC

Instruiește obiectelor writer să citeze toate câmpurile nenumerice .

Indică cititorului să convoace ert toate câmpurile necotate pentru a tasta float.

csv.QUOTE_NONE

Instrucțiuni writer obiecte care să nu citeze niciodată câmpuri. Când limita curentă apare în datele de ieșire, aceasta este precedată de caracterul curent de evadare. Dacă escapechar nu este setat, scriitorul va ridica Error dacă se întâlnesc orice caractere care necesită evadare.

Instrucțiuni reader să nu efectuați nicio prelucrare specială a caracterelor ghilimele.

Modulul csv definește următoarea excepție:

exceptioncsv.Error

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *