tanszek:oktatas:muszaki_informatika:fajlkezeles_hibakezeles
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| tanszek:oktatas:muszaki_informatika:fajlkezeles_hibakezeles [2026/02/26 18:32] – created szabom | tanszek:oktatas:muszaki_informatika:fajlkezeles_hibakezeles [2026/02/27 06:25] (current) – [Gyakorló feladatok] szabom | ||
|---|---|---|---|
| Line 149: | Line 149: | ||
| Adott egy jegyek.txt fájl, amely soronként a következő formátumú: | Adott egy jegyek.txt fájl, amely soronként a következő formátumú: | ||
| + | < | ||
| Anna 5 4 3 | Anna 5 4 3 | ||
| Bence 2 3 4 | Bence 2 3 4 | ||
| Csaba 1 2 | Csaba 1 2 | ||
| + | </ | ||
| * Olvasd be a fájlt. | * Olvasd be a fájlt. | ||
| * Számold ki minden diák átlagát. | * Számold ki minden diák átlagát. | ||
| Line 192: | Line 193: | ||
| f.write(sor + " | f.write(sor + " | ||
| </ | </ | ||
| - | Feladat: Szógyakoriság fájlból | + | **Feladat:** Szógyakoriság fájlból |
| Olvass be egy szoveg.txt fájlt. | Olvass be egy szoveg.txt fájlt. | ||
| Line 225: | Line 226: | ||
| Adott egy bevasarlas.txt fájl: | Adott egy bevasarlas.txt fájl: | ||
| + | < | ||
| alma 300 | alma 300 | ||
| korte 250 | korte 250 | ||
| banan 400 | banan 400 | ||
| + | </ | ||
| * Olvasd be a fájlt. | * Olvasd be a fájlt. | ||
| * Számold ki az összértéket. | * Számold ki az összértéket. | ||
| Line 330: | Line 331: | ||
| if kor < 18: | if kor < 18: | ||
| print(nev, kor) | print(nev, kor) | ||
| + | </ | ||
| + | |||
| + | **Feladat: | ||
| + | Adott egy diakok.txt fájl, amely a következő formátumú: | ||
| + | < | ||
| + | Anna; | ||
| + | Bence; | ||
| + | Csaba; | ||
| + | Dora; | ||
| + | </ | ||
| + | A program feladata: | ||
| + | |||
| + | - Olvassa be a fájlt. | ||
| + | - Alakítsa át az adatokat dictionary formára: | ||
| + | * < | ||
| + | { | ||
| + | " | ||
| + | ... | ||
| + | } | ||
| + | </ | ||
| + | - Hibakezelés: | ||
| + | * Ha a fájl nem létezik → hibaüzenet | ||
| + | * Ha egy jegy nem szám → jelezze, de a program menjen tovább | ||
| + | - Számolja ki minden diák átlagát. | ||
| + | - Írja ki az eredményt eredmeny.txt fájlba. | ||
| + | - Külön listázza a bukott diákokat (átlag < 2). | ||
| + | |||
| + | <sxh python> | ||
| + | def fajl_beolvasas(fajlnev): | ||
| + | diakok = {} | ||
| + | |||
| + | try: | ||
| + | with open(fajlnev, | ||
| + | sorok = f.readlines() | ||
| + | except FileNotFoundError: | ||
| + | print(" | ||
| + | return {} | ||
| + | |||
| + | for sor in sorok: | ||
| + | sor = sor.strip() | ||
| + | |||
| + | if not sor: | ||
| + | continue | ||
| + | |||
| + | try: | ||
| + | nev_resz, jegy_resz = sor.split(";" | ||
| + | except ValueError: | ||
| + | print(" | ||
| + | continue | ||
| + | |||
| + | tantargyak = {} | ||
| + | jegyek = jegy_resz.split("," | ||
| + | |||
| + | for adat in jegyek: | ||
| + | try: | ||
| + | tantargy, jegy = adat.split(" | ||
| + | jegy = int(jegy) | ||
| + | tantargyak[tantargy] = jegy | ||
| + | except ValueError: | ||
| + | print(f" | ||
| + | |||
| + | diakok[nev_resz] = tantargyak | ||
| + | |||
| + | return diakok | ||
| + | |||
| + | def atlag_szamitas(jegyek_dict): | ||
| + | if len(jegyek_dict) == 0: | ||
| + | return 0 | ||
| + | return sum(jegyek_dict.values()) / len(jegyek_dict) | ||
| + | |||
| + | def eredmeny_mentes(fajlnev, | ||
| + | with open(fajlnev, | ||
| + | for nev, jegyek in diakok.items(): | ||
| + | atlag = atlag_szamitas(jegyek) | ||
| + | f.write(f" | ||
| + | |||
| + | def bukottak_listaja(diakok): | ||
| + | bukott = [] | ||
| + | |||
| + | for nev, jegyek in diakok.items(): | ||
| + | atlag = atlag_szamitas(jegyek) | ||
| + | if atlag < 2: | ||
| + | bukott.append(nev) | ||
| + | |||
| + | return bukott | ||
| + | |||
| + | # -------- FŐPROGRAM -------- | ||
| + | |||
| + | diakok = fajl_beolvasas(" | ||
| + | |||
| + | if diakok: | ||
| + | eredmeny_mentes(" | ||
| + | |||
| + | bukott = bukottak_listaja(diakok) | ||
| + | |||
| + | print(" | ||
| + | for nev in bukott: | ||
| + | print(" | ||
| </ | </ | ||
tanszek/oktatas/muszaki_informatika/fajlkezeles_hibakezeles.1772130775.txt.gz · Last modified: 2026/02/26 18:32 by szabom
