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, narancs50,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 csvnyitott ("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 csvnyitott ("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 csvnyitott ("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 csvnyitott ("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 csvnyitott ("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, narancs50,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 csvnyitott ("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 csvnyitott ("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 csvnyitott ("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.