Delati s CSV-datotekami (Comma-Separated Values) je v programiranju pogosta naloga, ki se kaže v mnogih praktičnih aplikacijah. Ne glede na to, ali pridobivate podatke iz API-jev ali upravljate zaloge — možnost branja in pisanja CSV-datotek je nezamenljiva. V tem priročniku se boste naučili, kako učinkovito obdelovati CSV-datoteke z Python. Poglejali bomo ustvarjanje CSV-datotek, branje podatkov in manipulacijo s temi podatki.
Najpomembnejši vpogledi
- Pregled modula: Python ponuja vgrajen CSV modul, ki zagotavlja CSV-Reader in Writer.
- Struktura podatkov: Lahko uporabite tako sezname kot slovarje za shranjevanje in obdelavo podatkov.
- Učinkovito ravnanje z vhodom/izhodom: Uporabite with open(...), da obvladate dostop do datotek, tako da vam ni treba skrbeti za zapiranje datotek.
Navodila po korakih
Ustvarjanje imenika in ustvarjanje CSV-datoteke
Na začetku ustvarite prazen imenik. V tem imeniku bi morali ustvariti datoteko z imenom csvdatoteke.py. Ta datoteka bo vaš glavni skript za delo z CSV-datotekami.

Notri v svoji Python datoteki lahko ustvarite CSV datoteko z uporabo imena produkte.csv. V tej datoteki boste definirali stolpce z glavo Produkt ID, Ime, Cena in Zaloga.

CSV-datoteka bi lahko izgledala takole:
Produkt ID,Ime,Cena,Zaloga 1,iPad,399,50 2,Nerfgun,29.99,100
Branje CSV-datoteke
Za branje podatkov iz datoteke produkte.csv potrebujete CSV modul. Modul vam omogoča učinkovito obdelavo CSV podatkov. Podatke lahko pretvorite v berljiv format s pomočjo with open(...). To preprečuje ročno zapiranje objektov datoteke in naredi vaš kodo bolj čisto in varno.
V naslednjem koraku ustvarite CSV-Reader. S tem lahko pregledate datoteko vrstico po vrstico in izvlečete podatke:
with open('produkte.csv', newline='', encoding='utf-8') as csvfile: csvreader = csv.reader(csvfile) for row in csvreader: print(row)

Tukaj se vsaka vrstica bere kot seznam, kar kaže, da so podatki strukturirani, kot je pričakovano. Vsaka vrstica ustreza enemu izdelku in vsebuje informacije o ID, imenu, ceni in zalogi.
Uporaba slovarjev za bolj intuitivno obdelavo podatkov
Da bodo podatki preprostejši in bolj intuitivni, uporabite format slovarja. S slovarjem lahko olajšate dostop do svojih podatkov preko imen polj.

Tukaj potrebujete prav tako with open(...), da odprete datoteko in ustvarite CSV-Reader. Prepričajte se, da navedete seznam polj, ki jih želite prebrati:

Zdaj lahko enostavno dostopate do polj preko imen. To naredi vaše obdelovanje precej bolj dostopno.
Pisanje v CSV-datoteko
Za pisanje lastnih podatkov v CSV-datoteko lahko uporabite objekt Dictionary-Writer. Imate možnost ustvariti seznam slovarjev, ki predstavljajo vaše podatke.

Tukaj je preprost primer, kako lahko shranite seznam superjunakov kot CSV-datoteko:
with open('superheroj.csv', 'w', newline='') as csvfile: fieldnames = ['Ime', 'Vzdevek'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

Datoteka superheroj.csv bo sedaj ustvarjena in bo vsebovala podatke o superjunakih v dobro strukturiranem, berljivem formatu.
Zaključek in praktična uporaba
CSV-datoteke so dragoceno orodje za izmenjavo podatkov, ki se v praksi pogosto potrebuje. Ta priročnik vam ponuja osnove za obdelavo CSV-datotek z Python. Naučili ste se, kako lahko berete podatke iz CSV-datotek, obdelujete te podatke v Pythonu in pišete svoje podatke v CSV-format.
Povzetek – Obdelava CSV-datotek z Python
CSV-datoteke so pomemben format za izmenjavo podatkov v mnogih aplikacijah. Z Python lahko učinkovito in enostavno delate s temi datotekami. Ko na začetku razumete osnove, lahko te tehnike enostavno uporabite v kompleksnih aplikacijah za podatke.
Pogosta vprašanja
Kako odprem CSV-datoteko v Pythonu?CSV-datoteko lahko odprete v Pythonu s pomočjo with open('ime_datoteke.csv', 'r'):
Kako lahko pišem podatke v CSV-datoteko?Za to uporabite objekt csv.writer ali csv.DictWriter, da formatirate podatke in jih zapišete v datoteko.
Kakšna je razlika med csv.reader in csv.DictReader?csv.reader bere podatke kot sezname, medtem ko csv.DictReader izpiše podatke kot slovarje s kategorijami kot ključi.
Kako lahko nastavim glavo v CSV-datoteki?Glava se lahko navede z writeheader() pri pisanju CSV-datoteke preko Writerja.
Kako preberem CSV-datoteko z lastnimi imeni polj?Predajte seznam želenih imen polj pri ustvarjanju csv.DictReader.