Darbs ar CSV-failiem (Comma-Separated Values) programmēšanā ir bieža uzdevums, kas izpaužas daudzās praktiskās lietojumprogrammās. Neatkarīgi no tā, vai Tu iegūsti datus no API vai pārvaldi krājumus — iespēja lasīt un rakstīt CSV-failus ir nenovēršama. Šajā rokasgrāmatā Tu uzzināsi, kā efektīvi apstrādāt CSV-failus ar Python. Mēs aplūkosim CSV-failu izveidi, datu lasīšanu un šo datu manipulāciju.
Galvenās atziņas
- Moduļa pārskats: Python piedāvā iebūvētu CSV moduli, kas nodrošina CSV lasītāju un rakstītāju.
- Datu struktūra: Tu vari izmantot gan sarakstus, gan vārdnīcas, lai saglabātu un apstrādātu datus.
- Efektīva I/O apstrāde: Izmanto with open(...) datnes piekļuvei, lai Tev nebūtu jādomā par failu aizvēršanu.
Solīdz solim rokasgrāmata
Izveido katalogu un CSV-failu
Uzsākot, Tu izveido tukšu katalogu. Šajā katalogā Tu vari izveidot failu ar nosaukumu csvfaili.py. Šis fails būs Tavs galvenais skripts darbam ar CSV-failiem.

Tavā Python failā Tu vari izveidot CSV-failu, izmantojot nosaukumu produkti.csv. Šajā failā Tu definēsi kolonnas ar virsrakstiem Produkta ID, Nosaukums, Cena un Krājums.

CSV-fails varētu izskatīties šādi:
Produkta ID,Nosaukums,Cena,Krājums 1,iPad,399,50 2,Nerfgun,29.99,100
Lasīt CSV-failu
Lai izlasītu datus no produkte.csv faila, Tev ir nepieciešams CSV modulis. Modulis ļauj Tev efektīvi apstrādāt CSV datus. Tu vari pārvērst datus lasāmā formātā, izmantojot with open(...). Tas novērš manuālu failu objektu aizvēršanu un padara Tavus kodus tīrākus un drošākus.
Nākamajā solī Tu izveidosi CSV lasītāju. Ar to Tu vari pārlūkot failu pa rindām un izvilkt datus:
with open('produktı.csv', newline='', encoding='utf-8') as csvfile: csvreader = csv.reader(csvfile) for row in csvreader: print(row)

Šajā gadījumā katra rinda tiek izlasīta kā saraksts, kas parāda, ka dati ir strukturēti, kā gaidīts. Katrs ieraksts atbilst produktam un satur informāciju par ID, nosaukumu, cenu un krājumu.
Datu apstrādes vienkāršošanai izmanto vārdnīcas
Lai datus apstrādātu vienkāršāk un intuitīvāk, Tev vajadzētu izmantot vārdnīcas formātu. Ar vārdnīcas lasītāju Tu vari vieglāk piekļūt saviem datiem, izmantojot lauku nosaukumus.

Turpmāk Tev atkal būs nepieciešams with open(...), lai atvērtu failu un izveidotu CSV lasītāju. Pārliecinies, ka Tu norādi lauku sarakstu, kurus vēlies izlasīt:

Tagad Tu vari viegli piekļūt laukiem, izmantojot to nosaukumus. Tas padara Tavu apstrādi daudz pieejamāku.
Rakstīt CSV-failu
Lai ierakstītu savus datus CSV-failā, Tu vari izmantot vārdnīcas rakstītāja objektu. Tev ir iespēja izveidot sarakstu ar vārdnīcām, kas attēlo Tavus datus.

Šeit ir vienkāršs piemērs, kā Tu vari saglabāt sarakstu ar supervaroņiem kā CSV-failu:
with open('supervaroņi.csv', 'w', newline='') as csvfile: fieldnames = ['Nosaukums', 'Aizsargs'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

Fails supervaroņi.csv tagad tiek izveidots un satur supervaronīdu datus labi strukturētā, lasāmā formātā.
Noslēgums un praktiska pielietošana
CSV-faili ir vērtīgs rīks datu apmaiņai, kas praksē bieži tiek prasīts. Šī rokasgrāmata sniedz Tev pamatus CSV-failu apstrādei ar Python. Tu esi iemācījies, kā izlasīt datus no CSV-failiem, apstrādāt tos Python un rakstīt savus datus CSV formātā.
Kopsavilkums – CSV-failu apstrāde ar Python
CSV-faili ir svarīgs formāts datu apmaiņai daudzās lietojumprogrammās. Izmantojot Python, Tu vari efektīvi un vienkārši strādāt ar šiem failiem. Kad Tu esi sapratis pamatus, Tu vari šīs tehnikas viegli piemērot sarežģītām datu lietojumprogrammām.
Bieži uzdotie jautājumi
Kā es varu atvērt CSV-failu Python?Tu vari atvērt CSV-failu Python ar with open('faila_nosaukums.csv', 'r'):.
Kā es varu ierakstīt datus CSV-failā?Tam Tu izmanto csv.writer vai csv.DictWriter objektu, lai formatētu datus un ierakstītu failā.
Kāda ir atšķirība starp csv.reader un csv.DictReader?csv.reader lasa datus kā sarakstus, bet csv.DictReader izvada datus kā vārdnīcas ar lauku nosaukumiem kā atslēgām.
Kā es varu norādīt galveni CSV-failā?Galveni var norādīt ar writeheader() rakstot CSV-failu, izmantojot Writer.
Kā es varu izlasīt CSV-failu ar pielāgotiem lauku nosaukumiem?Pārvadi sarakstu ar vēlamajiem lauku nosaukumiem, izveidojot csv.DictReader.