Piton

A CSV fájlok kezelése a Pythonban

A CSV fájlok kezelése a Pythonban
Ez a cikk bemutatja a „csv” fájlok Python használatával történő kezelését. A „csv” kifejezés jelentése „vesszővel elválasztott érték”, ahol minden sor vagy sor vesszővel határolt szöveges értékeket tartalmaz. Bizonyos esetekben a „vessző” helyett a „pontosvesszőt” is használják az értékek elkülönítésére. Ez azonban nem sok különbséget jelent a fájlformátum-szabályok között, és a mindkét elválasztótípus kezelésének logikája ugyanaz.

A CSV fájlformátumot leggyakrabban adatbázisok és táblázatok karbantartására használják. A CSV-fájl első sorát használják leggyakrabban az oszlopmezők meghatározására, míg a többi fennmaradó sort sornak tekintik. Ez a struktúra lehetővé teszi a felhasználók számára, hogy táblázatos adatokat jelenítsenek meg CSV fájlok segítségével. A CSV fájlok bármely szövegszerkesztőben szerkeszthetők. Azonban az olyan alkalmazások, mint a LibreOffice Calc, fejlett szerkesztőeszközöket, rendezési és szűrési funkciókat kínálnak.

Adatok olvasása CSV fájlokból Python használatával

A Python CSV modulja lehetővé teszi a CSV fájlokban tárolt adatok olvasását, írását és kezelését. A CSV fájl elolvasásához a Python „csv” moduljának „olvasó” módszerét kell használnia, amely a Python szabványos könyvtárában található.

Fontolja meg, hogy van egy CSV fájlja, amely a következő adatokat tartalmazza:

Mangó, banán, alma, narancs
50,70,30,90

A fájl első sora meghatározza az egyes oszlopkategóriákat, ebben az esetben a gyümölcsök nevét. A második sor értékeket tárol minden oszlop alatt (készlet-kézben). Ezeket az értékeket vessző határolja. Ha ezt a fájlt olyan táblázatkezelő alkalmazásban nyitná meg, mint a LibreOffice Calc, a következőképpen nézne ki:

Most, hogy értékeket olvassak a „gyümölcsökből”.csv ”fájlt a Python“ csv ”moduljával, az“ olvasó ”módszert kell használnia a következő formátumban:

import csv
nyitott ("gyümölcsök.csv ") fájlként:
data_reader = csv.olvasó (fájl)
a data_reader sorhoz:
nyomtatás (vonal)

A fenti minta első sora importálja a „csv” modult. Ezután a „nyitva” utasítással biztonságosan megnyithatja a merevlemezén tárolt fájlokat („gyümölcsök.csv ”(ebben az esetben). Új „data_reader” objektum jön létre az „olvasó” módszer meghívásával a „csv” modulból. Ez az „olvasó” módszer kötelező argumentumként egy fájlnevet vesz fel, ezért a „gyümölcsökre” való hivatkozás.csv ”átadják neki. Ezután egy „for” ciklus utasítás futtatásával minden sor kinyomtatható a „gyümölcsökből”.csv ”fájl. A fent említett kódminta futtatása után a következő kimenetet kell kapnia:

['50', '70', '30', '90']

Ha sorszámokat szeretne rendelni a kimenethez, használhatja a „felsorolás” funkciót, amely számot rendel az iterálható elemek minden eleméhez (0-tól kezdődően, hacsak nem változtatják meg).

import csv
nyitott ("gyümölcsök.csv ") fájlként:
data_reader = csv.olvasó (fájl)
index, sor felsorolása (data_reader):
nyomtatás (index, sor)

Az „index” változó megtartja az egyes elemek számát. A fent említett kódminta futtatása után a következő kimenetet kell kapnia:

0 ['Mangó', 'Banán', 'Alma', 'Narancs']
1 ['50', '70', '30', '90']

Mivel a „csv” fájl első sora általában oszlopfejléceket tartalmaz, a „felsorolás” funkcióval kibonthatja ezeket a fejléceket:

import csv
nyitott ("gyümölcsök.csv ") fájlként:
data_reader = csv.olvasó (fájl)
index, sor felsorolása (data_reader):
ha index == 0:
címsorok = sor
nyomtatás (fejlécek)

A fenti utasítás „if” blokkja ellenőrzi, hogy az index nulla-e (az első sor a „gyümölcsökben.csv ”fájl). Ha igen, akkor a „line” változó értékét egy új „headings” változóhoz rendeljük. Miután a fenti kódmintát futtatta, a következő kimenetet kell kapnia:

['Mangó', 'Banán', 'Alma', 'Narancs']

Vegye figyelembe, hogy a „csv.olvasó ”módszer egy opcionális„ elválasztó ”argumentum használatával a következő formátumban:

import csv
nyitott ("gyümölcsök.csv ") fájlként:
data_reader = csv.olvasó (fájl, határoló = ";")
a data_reader sorhoz:
nyomtatás (vonal)

Mivel egy csv fájlban az egyes oszlopok egy sor értékéhez vannak társítva, érdemes létrehozni egy Python „szótár” objektumot, amikor adatokat olvas egy „csv” fájlból. Ehhez a „DictReader” módszert kell használnia, az alábbi kód szerint:

import csv
nyitott ("gyümölcsök.csv ") fájlként:
data_reader = csv.DictReader (fájl)
a data_reader sorhoz:
nyomtatás (vonal)

A fent említett kódminta futtatása után a következő kimenetet kell kapnia:

'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'

Tehát most van egy szótárobjektum, amely egyes oszlopokat társít a sorok megfelelő értékeivel. Ez jól működik, ha csak egy sora van. Tegyük fel, hogy a „gyümölcsök.A csv ”fájl egy további sort tartalmaz, amely meghatározza, hogy hány nap szükséges a gyümölcskészlet elpusztulásához.

Mangó, banán, alma, narancs
50,70,30,90
3,1,6,4

Ha több sora van, akkor a fenti kódminta futtatása eltérő kimenetet eredményez.

'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'
'Mango': '3', 'Banana': '1', 'Apple': '6', 'Orange': '4'

Ez nem biztos, hogy ideális, mivel érdemes egy Python szótárban feltérképezni az összes oszlophoz tartozó értéket egy kulcs-érték párra. Próbálja ki ezt a kódmintát:

import csv
nyitott ("gyümölcsök.csv ") fájlként:
data_reader = csv.DictReader (fájl)
data_dict =
a data_reader sorhoz:
kulcs esetén az érték a sorban.elemek ():
data_dict.setdefault (kulcs, [])
data_dict [kulcs].függelék (érték)
nyomtatás (data_dict)

A fent említett kódminta futtatása után a következő kimenetet kell kapnia:

'Mango': ['50', '3'], 'Banán': ['70', '1'], 'Apple': ['30', '6'], 'Narancs': ['90 ',' 4 ']

A „for” hurok a „DictReader” objektum minden eleménél felhasználható a kulcs-érték párok közötti hurokhoz. Előtte egy új „data_dict” Python szótár változót definiáltunk. Tárolja a végső adat-leképezéseket. A második „for” hurokblokk alatt a Python szótár „setdefault” módszerét használják. Ez a módszer értéket rendel a szótár kulcsához. Ha a kulcs-érték pár nem létezik, akkor a megadott argumentumokból újat hoznak létre. Tehát ebben az esetben egy új üres listát rendelünk egy kulcshoz, ha az még nem létezik. Végül az „érték” a megfelelő kulcshoz csatolódik a végső „data_dict” objektumban.

Adatok írása CSV fájlba

Ha adatokat szeretne írni egy „csv” fájlba, akkor a „csv” modulból származó „író” metódust kell használnia. Az alábbi példa új sort fűz a meglévő „gyümölcsökhöz.csv ”fájl.

import csv
nyitott ("gyümölcsök.csv "," a ") fájlként:
data_writer = csv.író (fájl)
data_writer.író ([3,1,6,4])

Az első utasítás „függelék” módban nyitja meg a fájlt, amelyet az „a” argumentum jelöl. Ezután az „író” módszert hívják meg, és hivatkoznak a „gyümölcsökre”.csv ”fájlt adunk át neki argumentumként. Az „író” módszer új sort ír vagy ad hozzá a fájlhoz.

Ha a Python szótárt „csv” fájlstruktúrává kívánja konvertálni, és a kimenetet egy „csv” fájlba kívánja menteni, próbálkozzon a következő kóddal:

import csv
nyitott ("gyümölcsök.csv "," w ") fájlként:
headings = ["Mangó", "Banán", "Alma", "Narancs"]
data_writer = csv.DictWriter (fájl, mezőnevek = címsorok)
data_writer.írófej ()
data_writer.író ("Mango": 50, "Banán": 70, "Alma": 30, "Narancs": 90)
data_writer.író ("Mango": 3, "Banán": 1, "Alma": 6, "Narancs": 4)

Miután kinyitott egy üres „gyümölcsöket.csv ”fájl egy“ nyitva ”utasítással, egy új változó“ fejléc ”kerül meghatározásra, amely oszlopfejléceket tartalmaz. Új objektum jön létre a „data_writer” létrehozásával a „DictWriter” metódus meghívásával és a „gyümölcsök” hivatkozásának átadásával.csv ”fájl és egy“ fieldnames ”argumentum. A következő sorban oszlopfejléceket írunk a fájlba a „writeheader” módszerrel. Az utolsó két utasítás új sorokat ad hozzá az előző lépésben létrehozott megfelelő címsorokhoz.

Következtetés

A CSV fájlok egyszerű módszert kínálnak táblázatos formátumú adatok írására. A Python beépített „csv” modulja megkönnyíti a „csv” fájlokban elérhető adatok kezelését és további logika megvalósítását.

Vulkan Linux felhasználók számára
A grafikus kártyák minden új generációjával azt látjuk, hogy a játékfejlesztők átlépik a grafikus hűség határait, és egy lépéssel közelebb kerülnek a ...
OpenTTD vs Simutrans
Saját közlekedési szimuláció létrehozása szórakoztató, pihentető és rendkívül csábító lehet. Ezért meg kell győződnie arról, hogy a lehető legtöbb ját...
OpenTTD bemutató
Az OpenTTD az egyik legnépszerűbb üzleti szimulációs játék. Ebben a játékban létre kell hoznia egy csodálatos szállítási vállalkozást. Azonban kezdete...