Obsah
CSV
CSV (z anglického Comma-Separated Values, česky hodnoty oddělené čárkami) je jednoduchý textový formát pro ukládání tabulkových dat, jako jsou čísla, text nebo datumy. Každý řádek souboru představuje jeden záznam, zatímco jednotlivé hodnoty ve sloupcích jsou odděleny oddělovačem (nejčastěji čárkou).
CSV je široce podporován tabulkovými procesory (např. Microsoft Excel, LibreOffice Calc), databázemi, programovacími jazyky (Python, JavaScript, PHP) a analytickými nástroji.
Struktura souboru CSV
Základní princip:
- Každý řádek = jeden záznam (řádek tabulky).
- Každá hodnota ve sloupci je oddělena znakem oddělovače.
- První řádek často obsahuje názvy sloupců (tzv. hlavička, header).
Příklad souboru zamestnanci.csv:
jmeno,prijmeni,vek,oddeleni Jan,Novák,32,IT Eva,Svobodová,28,Marketing Petr,Dvořák,45,Finance
Oddělovače
Přestože název „CSV“ znamená „oddělené čárkami“, v praxi se mohou používat i jiné znaky, zejména kvůli lokalizaci (např. v češtině se desetinná čísla zapisují s čárkou, nikoli tečkou):
- Čárka (`,`) – standard v anglicky mluvících zemích.
- Středník (`;`) – běžný v Evropě (včetně ČR) pro oddělení sloupců v Excelu.
- Tabulátor (`\t`) – pak se formát označuje jako TSV (Tab-Separated Values).
Příklad s oddělovačem středníkem:
jmeno;prijmeni;vek;oddeleni Jan;Novák;32;IT Eva;Svobodová;28;Marketing
Pravidla pro uvozovky a speciální znaky
Pokud hodnota obsahuje:
- oddělovač (např. čárku),
- nový řádek,
- nebo uvozovky,
musí být uzavřena do uvozovek (obvykle dvojitých `„`).
Pravidla podle RFC 4180 (standard pro CSV):
- Hodnoty s obsahem oddělovače, nového řádku nebo uvozovek musejí být uzavřeny v dvojitých uvozovkách.
- Uvnitř uvozovek se dvojitá uvozovka zapisuje jako dvě uvozovky: `“„`.
Příklad:
nazev,poznamka "Projekt Alpha","Obsahuje čárku, teď je v pořádku" "Kniha ""1984""","Klasika od George Orwella"
Výhody a nevýhody
| Výhody | Nevýhody |
|---|---|
| Jednoduchost – čitelné i pro lidi, snadno generovatelné. | Žádná standardizace typů dat – vše je text; čísla, datumy nebo logické hodnoty nejsou rozlišeny. |
| Široká podpora – většina software jej umí importovat/exportovat. | Nejednoznačnost – různé programy používají různé oddělovače, kódování, formáty datumů. |
| Lehké soubory – malá velikost, vhodné pro výměnu dat. | Žádná podpora vztahů nebo struktury – jen plochá tabulka, nelze reprezentovat hierarchii (na rozdíl od JSON nebo XML). |
| Nezávislost na platformě – funguje na Windows, Linux, macOS. | Bezpečnostní rizika – některé programy (např. Excel) automaticky interpretují obsah jako vzorce (tzv. formula injection). |
Kódování znaků
Nejčastější kódování:
- UTF-8 – doporučené pro mezinárodní výměnu, podporuje všechny znaky (včetně háčků a čárek v češtině).
- Windows-1250 – tradiční kódování pro češtinu ve Windows (dnes již méně doporučované).
❗ Důležité: Pokud soubor obsahuje háčky a čárky (např. „Česká republika“), musí být uložen v kódování, které je podporuje (nejlépe UTF-8 s BOM pro kompatibilitu s Excelem na Windows).
Použití v praxi
- Export dat z databáze – rychlý způsob, jak data přenést do Excelu.
- Import produktových katalogů – e-shopy často umožňují nahrát zboží přes CSV.
- Zpracování dat v Pythonu – modul `csv` umožňuje snadné čtení a zápis.
- Migrační skripty – přenos dat mezi systémy (např. z CRM do analytického nástroje).
Příklad v Pythonu:
import csv with open('zamestnanci.csv', encoding='utf-8') as soubor: reader = csv.DictReader(soubor) for radek in reader: print(radek['jmeno'], radek['prijmeni'])
Bezpečnostní doporučení
- Nikdy neotvírej podezřelé CSV soubory v Excelu – mohou obsahovat škodlivé vzorce (např. `=cmd|' /C calc'!A0`).
- Při importu do Excelu vždy zvol „Text“ jako formát sloupce, ne „Obecný“.
- Ověř kódování a oddělovač před zpracováním.
- Nepoužívej CSV pro citlivá data bez šifrování (např. osobní údaje podle GDPR).
Standardy a normy
- RFC 4180 – formální specifikace formátu CSV (včetně pravidel pro uvozovky, řádkování a MIME typ `text/csv`).
- MIME typ: `text/csv`
- Přípona souboru: `.csv`
Související pojmy
Externí odkazy
- RFC 4180 – Common Format and MIME Type for Comma-Separated Values (CSV) Files: https://datatracker.ietf.org/doc/html/rfc4180
- W3C – Model for Tabular Data and Metadata on the Web: https://www.w3.org/TR/tabular-data-model/
