csv – Čtení a zápis souborů CSV¶

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *