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.
Základní princip:
Příklad souboru zamestnanci.csv:
jmeno,prijmeni,vek,oddeleni Jan,Novák,32,IT Eva,Svobodová,28,Marketing Petr,Dvořák,45,Finance
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):
Příklad s oddělovačem středníkem:
jmeno;prijmeni;vek;oddeleni Jan;Novák;32;IT Eva;Svobodová;28;Marketing
Pokud hodnota obsahuje:
musí být uzavřena do uvozovek (obvykle dvojitých `„`).
Pravidla podle RFC 4180 (standard pro CSV):
Příklad:
nazev,poznamka "Projekt Alpha","Obsahuje čárku, teď je v pořádku" "Kniha ""1984""","Klasika od George Orwella"
| 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). |
Nejčastější kódování:
❗ 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).
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'])