Práce s CSV-souborů (Comma-Separated Values) je v programování běžný úkol, který se projevuje v mnoha praktických aplikacích. Ať už získáváš data z API nebo spravuješ skladové zásoby — možnost číst a zapisovat CSV-soubory je nezbytná. V této příručce se naučíš, jak efektivně zpracovávat CSV-soubory pomocí Python. Podíváme se na vytváření CSV-souborů, čtení dat a manipulaci s těmito daty.
Nejdůležitější poznatky
- Přehled modulu: Python nabízí integrovaný CSV modul, který poskytuje CSV-Reader a Writer.
- Datová struktura: Můžeš použít jak seznamy, tak dictionary pro uložení a zpracování dat.
- Efektivní E/A zpracování: Použij with open(...) pro práci s přístupem k souboru, abys nemusel myslet na zavírání souborů.
Krok za krokem návod
Vytvoření adresáře a CSV-souboru
Na začátku vytvoříš prázdný adresář. V tomto adresáři bys měl vytvořit soubor s názvem csvdateien.py. Tento soubor bude tvým hlavním skriptem pro práci s CSV-soubory.

Uvnitř tvého Python-souboru můžeš vytvořit CSV-soubor použitím názvu produkte.csv. V tomto souboru definuješ sloupce s hlavičkami Produkt ID, Název, Cena a Skladová zásoba.

CSV-soubor by mohl například vypadat takto:
Produkt ID,Název,Cena,Skladová zásoba 1,iPad,399,50 2,Nerfgun,29.99,100
Čtení CSV-souboru
Abychom mohli číst data ze souboru produkte.csv, potřebuješ CSV modul. Tento modul ti umožňuje efektivně zpracovávat CSV data. Můžeš převést data do čitelného formátu pomocí with open(...). Tím se vyhneš manuálnímu zavírání objektů souboru a tvůj kód bude čistší a bezpečnější.
V dalším kroku vytvoříš CSV-Reader. Pomocí něj můžeš procházet soubor řádek po řádku a extrahovat data:
with open('produkte.csv', newline='', encoding='utf-8') as csvfile: csvreader = csv.reader(csvfile) for row in csvreader: print(row)

Při tom se každý řádek načítá jako seznam, což ukazuje, že jsou data strukturována, jak se očekávalo. Každý řádek odpovídá jednomu produktu a obsahuje informace o ID, názvu, ceně a skladové zásobě.
Použití slovníků pro intuitivnější zpracování dat
Abychom jednodušeji a intuitivněji manipulovali s daty, měl bys použít slovníkový formát. S pomocí Dictionary-Reader můžeš usnadnit přístup k tvým datům pomocí názvů polí.

Také tady potřebuješ with open(...), abys otevřel soubor a vytvořil CSV-Reader. Ujisti se, že zadáš seznam polí, které chceš přečíst:

Teď můžeš snadno přistupovat k polím podle názvů. To činí tvé zpracování mnohem přístupnější.
Zapisování do CSV-souboru
Abychom mohli zapisovat vlastní data do CSV-souboru, můžeš použít objekt Dictionary-Writer. Můžeš vytvořit seznam slovníků, které reprezentují tvá data.

Zde je jednoduchý příklad, jak můžeš uložit seznam superhrdinů jako CSV-soubor:
with open('superhelden.csv', 'w', newline='') as csvfile: fieldnames = ['Název', 'Alias'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

Soubor superhelden.csv je nyní vytvořen a obsahuje data superhrdinů ve dobře strukturovaném, čitelném formátu.
Závěr a praktická aplikace
CSV-soubory jsou cenný nástroj pro výměnu dat, který se v praxi často využívá. Tato příručka ti poskytuje základy pro zpracování CSV-soubory v Pythonu. Naučil jsi se, jak číst data z CSV-soubory, zpracovávat je v Pythonu a zapisovat vlastní data do CSV formátu.
Souhrn – Zpracování CSV-souborů pomocí Pythonu
CSV-soubory jsou důležitým formátem pro výměnu dat v mnoha aplikacích. S pomocí Pythonu můžeš efektivně a jednoduše pracovat s těmito soubory. Jakmile pochopíš základy, můžeš tyto techniky snadno aplikovat na složité datové aplikace.
Často kladené otázky
Jak otevřu CSV-soubor v Pythonu?CSV-soubor v Pythonu otevřeš pomocí with open('název_souboru.csv', 'r'):
Jak mohu zapisovat data do CSV-souboru?K tomu použij objekt csv.writer nebo csv.DictWriter, abys formátoval a zapisoval data do souboru.
Jaký je rozdíl mezi csv.reader a csv.DictReader?csv.reader čte data jako seznamy, zatímco csv.DictReader vrací data jako slovníky s názvy polí jako klíči.
Jak mohu určit hlavičku v CSV-souboru?Hlavičku můžeš zadat pomocí writeheader() při zapisování CSV-souboru pomocí Writeru.
Jak čtu CSV-soubor s vlastním názvem polí?Při vytváření csv.DictReader předáš seznam požadovaných názvů polí.