Fájlok írása Pytonban!
Elkészült a Python nyelv Szövegfájlok írása tananyagunk! Jó tanulást, jó gyakorlást!

<info9>

Szövegek darabolása: a split

Itt a húsvét!

Szeretnél az ünnepek alatt is gyakorolni? Vár az Easter Bug Hunt játékunk! Csatlakozz, és keresd meg az összes hibát - akár még jutalom is ütheti a markod!

Irány a játék

Gyakran előfordul, főleg fájlból történő beolvasásnál, hogy olyan adatfájllal dolgozunk, amelynek egy sorában több különböző adat is van, például pontosvesszővel, szóközzel, vagy tabulátorral elválasztva. Nézzük mondjuk ezt a mintafájlt:

Kovács Péter;1999;170
Szabó András;1987;173
Tóth Noémi;2001;167
Szabados Petra;1998;177

Ebben a fájlban minden sorban 3 adat található:

Ahhoz, hogy ezeket az adatokat külön-külön is hasznosítani tudjuk, egy sor beolvasása után a benne található 3 információt szét kell vágnunk. Erre használhatjuk a szövegek split nevű metódusát. A split-nek egy darab kötelező paramétere van, egy karaktert, vagy szövegrészletet kell neki átadnunk, aminél szét szeretnénk szeletelni a szöveget. Végeredményként egy szövegekből álló listát ad vissza, annyi elemmel, ahány darab keletkezett. Nézzünk egy mintát:

sor = "Kovács Péter;1999;170"
darabok = sor.split(";")

A kódrészlet lefutása után a darabok listában 3 elem található:

darabok[0] = "Kovács Péter"
darabok[1]="1999"
darabok[2]="170"

Érdemes megjegyezni, hogy ezek a darabok - a tartalmuktól függetlenül - mind szöveg adattípussal rendelkeznek, ha tehát egy számként szeretnénk dolgozni velük, akkor át kell őket konvertálni a megfelelő konvertáló függvénnyel, például így:

szuletett = int(darabok[1])

Speciális karakterek

Előfordulhat olyan eset, hogy a splittel valamilyen speciális karakternél szeretnénk elvagdosni a szövegünket, például sortöréseknél, vagy tabulátoroknál. Ezeket a speciális karaktereket nem tudjuk csak úgy begépelni a kódba, mert akkor a kódunk nem fog megfelelően működni, helyette az alábbi speciális jelölőket kell használnunk:

Új sor: \n

Tabulátor: \t

Próbáld ki magad is! Nézd át a cikkünkhöz tartozó mintakódot - szerkeszd és futtasd közvetlenül a böngésződben, az info9 LineFlame fejlesztőeszközével!

Példa megnyitása

Próbáld ki!

Gyakorló feladatok

1. Feladat: Olvass be egy mondatot a konzolról, majd sorold fel a mondat szavait, egymás alá, azok sorszámával ellátva. Például:

Írj be egy mondatot: Nincs sok szabadidőm.
1. szó: Nincs
2. szó: sok
3. szó: szabadidőm.

Megoldom a laborban!

2. Feladat: Kérj be a felhasználótól egy időpontot óra:perc:másodperc formátumban (pl.: 12:30:41), majd számítsd ki, hogy ez az időpont a napnak hányadik másodperce! (azaz ha a felhasználó például a 00:01:05 időpontot írja be, a program kimenete: 65) Megoldom a laborban!

3. Feladat A bemenet változó egy szöveget tartalmaz (lásd lentebb), amelyben számok találhatóak, szóközzel elválasztva. Határozd meg a szövegben található számok összegét, majd írd ki az eredményt a konzolra! A munkád teszteléséhez használd például az alábbi adatsort:

bemenet = "3 12 9 5 4 1 7"

Nehezebb feladatokat keresel? A listák gyakorló feladatok között találhatsz több olyan feladatot is, amelyekben a split-et is alkalmazhatod! (Érdemes hozzájuk áttekinteni a fájl beolvasás tananyagunkat is)