Obsah modulu¶
The csv
modul definuje následující funkce:
csv.
reader
(csvfile, dialect = „excel“, ** fmtparams ) ¶
Vrátí objekt čtečky, který bude iterovat po řádcích v daném souboru csvfile. Csvfile může být jakýkoli objekt, který podporuje iterátorový protokol a vrací astring pokaždé, když je volána metoda __next__()
– vhodné jsou souborové objekty i seznamové objekty. Pokud je soubor csvfile soubor, měl by být otevřen pomocí newline=""
. 1 Lze zadat parametr optionaldialect, který slouží k definování sady parametrů specifických pro konkrétní dialekt CSV. Může to být instance podtřídy třídy Dialect
nebo jeden z řetězců vrácených funkcí list_dialects()
. Lze zadat další volitelné argumenty klíčových slov fmtparams k přepsání jednotlivých parametrů formátování v aktuálním dialektu. Úplné podrobnosti o dialektu a parametrech formátování naleznete v sekci Dialekty a parametry formátování.
Každý řádek načtený ze souboru csv je vrácen jako seznam řetězců. Automatický převod datového typu se provádí, pokud není zadána možnost QUOTE_NONNUMERIC
formátu (v takovém případě jsou nekótovaná pole převedena na plováky).
Krátký příklad použití:
csv.
writer
(csvfile, dialect = „excel“, ** fmtparams) ¶
Vrátit objekt zapisovače odpovědný za převod uživatelská data do oddělovaných řetězců na daném objektu podobném souboru. csvfile může být jakýkoli objekt s metodou write()
. Pokud je soubor csvfile soubor, měl by být otevřen pomocí newline=""
1. Může být uveden volitelný parametr dialect, který slouží k definování sady parametrů specifických pro konkrétní dialekt CSV. Může to být instance podtřídy třídy Dialect
nebo některý z řetězců vrácených funkcí list_dialects()
. Lze zadat další volitelné argumenty klíčových slov fmtparams k přepsání jednotlivých parametrů formátování v aktuálním dialektu. Úplné podrobnosti o dialektu a parametrech formátování najdete v sekci Dialekty a parametry formátování. Aby bylo co nejjednodušší rozhraní s moduly, které implementují DB API, je hodnota None
zapsána jako prázdný řetězec. I když nejde o nevratnou transformaci, usnadňuje výpis datových hodnot SQL NULL do souborů CSV bez předzpracování dat vrácených z volání cursor.fetch*
. Všechna ostatní neřetězcová data jsou zpřístupněna pomocí str()
před napsáním.
Krátký příklad použití:
csv.
register_dialect
(jméno)) ¶
Přiřaďte dialekt k jménu. jméno musí být řetězec. Thedialect lze určit buď předáním podtřídy Dialect
, nebo pomocí argumentů klíčových slov fmtparams, nebo obojí, přičemž argumenty klíčových slov převažují nad parametry dialektu. Úplné podrobnosti o dialektu a parametrech formátování najdete v části Dialekty a parametry formátování.
csv.
unregister_dialect
(name) ¶
Vymažte dialekt spojený s názvem z registru dialektů. Pokud název není registrovaným názvem dialektu, je vyvolána Error
.
csv.
get_dialect
(name) ¶
Vrátí dialekt spojený se jménem. Pokud název není registrovaným názvem dialektu, je vyvolána Error
. Tato funkce vrací neměnný Dialect
.
csv.
list_dialects
() ¶
Vrátit názvy všech registrovaných dialektů.
csv.
field_size_limit
() ¶
Vrátí aktuální maximální velikost pole analyzátor. Pokud je zadán new_limit, stane se tímto novým limitem.
Modul csv
definuje následující třídy:
classcsv.
DictReader
(f, fieldnames = None, restkey = None, restval = None, dialect = „excel“, * args, ** kwds) ¶
Vytvořit objekt který funguje jako běžný čtenář, ale mapuje informace v každém řádku na dict
jehož klíče jsou dány volitelným parametrem fieldnames.
Parametr fieldnames je sekvence. Pokud jsou názvy polí povoleny, budou jako názvy polí použity hodnoty v prvním řádku souboru f. Bez ohledu na to, jak jsou názvy polí určeny, slovník zachovává jejich původní řazení.
Pokud má řádek více polí než názvy polí, zbývající data se vloží do alist a uloží se s názvem pole určeným pomocí restkey (který defaultsto None
). Pokud má neprázdný řádek méně polí než názvy polí, jsou vydávané hodnoty vyplněny hodnotou restval (která defaultsto None
).
Všechny ostatní volitelné argumenty nebo argumenty klíčových slov jsou předány podkladové instanci reader
.
Změněno ve verzi 3.6: Vrácené řádky jsou nyní typu OrderedDict
.
Změněno ve verzi 3.8: Vrácené řádky jsou nyní typu dict
.
Krátký příklad použití:
classcsv.
DictWriter
( f, fieldnames, restval = „“, extrasaction = „raise“, dialect = „excel“, * args, ** kwds) ¶
Vytvořte objekt, který funguje jako běžný zapisovač, ale mapuje slovníky na výstupní řádky. Parametr fieldnames je sequence
klíčů, které určují pořadí, ve kterém jsou hodnoty ve slovníku předané metodě writerow()
zapisovány do filef. Volitelný parametr restval určuje hodnotu, která se má zapsat, pokud ve slovníku chybí klíč v názvech polí. Pokud slovník předaný metodě writerow()
obsahuje klíč, který nebyl nalezen názvy polí, volitelný parametr extrasaction označuje, jakou akci provést. Pokud je nastaven na "raise"
, výchozí hodnota, ValueError
se zvýší. Pokud je nastavena na "ignore"
, další hodnoty ve slovníku jsou ignorovány. volitelné argumenty nebo klíčové slovo jsou předány do podkladové instance writer
.
Všimněte si, že na rozdíl od třídy DictReader
jsou názvy polí parametr třídy DictWriter
není volitelný.
Krátký příklad použití:
classcsv.
Dialect
¶
Třída Dialect
je kontejnerová třída, na kterou se primárně spoléhají její atributy, které se používají k definování parametrů pro konkrétní reader
nebo writer
instance.
classcsv.
excel
¶ Třída excel
definuje obvyklé vlastnosti souboru CSV vytvořeného Excelem. Je registrován pod názvem dialektu "excel"
. class csv.
excel_tab
¶
Třída excel_tab
definuje obvyklé vlastnosti souboru s oddělovacím souborem vygenerovaným Excelem. Je registrován pod názvem dialektu "excel-tab"
.
classcsv.
unix_dialect
¶
Třída unix_dialect
definuje obvyklé vlastnosti souboru CSV generovaného v systémech UNIX, tj. používá "\n"
jako zakončení řádku a cituje všechna pole. Je registrován pod názvem dialektu "unix"
.
Novinka ve verzi 3.2.
třídacsv.
Sniffer
¶
Třída Sniffer
se používá k odvození formátu souboru CSV.
Třída Sniffer
poskytuje dvě metody:
sniff
(sample, delimiters = None) ¶
Analyse daný vzorek a vrátí Dialect
podtřídu odrážející nalezené parametry. Pokud je uveden volitelný parametr oddělovače, bude interpretován jako řetězec obsahující možné znaky validdelimiteru.
has_header
(ukázka) ¶
Analyzujte ukázkový text (předpokládá se, že je v CSV formát) a vrátit True
, pokud se první řádek jeví jako řada záhlaví sloupců.
Příklad pro Sniffer
použití:
Modul csv
definuje následující konstanty:
csv.
QUOTE_ALL
¶
Instruuje writer
objekty, aby citovala všechna pole.
csv.
QUOTE_MINIMAL
¶
Dává pokyn writer
objektům citovat pouze ta pole, která obsahují speciální znaky, jako je oddělovač, uvozovka nebo některý ze znaků inlineterminator. > csv.
QUOTE_NONNUMERIC
¶
dává pokyn writer
objektům citovat všechna nečíselná pole .
Dává pokyn čtenáři, aby konv ert všechna nekotovaná pole zadejte float.
csv.
QUOTE_NONE
¶
Pokyny writer
objekty, které nikdy nebudou citovat pole. Když se ve výstupních datech vyskytne oddělovač proudu, předchází mu aktuální znak escapecharcharacter. Pokud není nastaven escapechar, vypíše zapisovatel Error
, pokud narazíte na všechny znaky, které vyžadují únik.
Pokyny reader
neprovádět žádné speciální zpracování uvozovek.
Modul csv
definuje následující výjimku:
výjimkacsv.
Error