Fizika, matek, informatika érettségi

Home Fizika Excel Access A weboldalról

Fájlkezelés a Pythonban

Ha szét akarjuk szedni kisebb részekre a programot, vagy ha egy részprogramot többször is szeretnénk végrehajtani, szubrutint (saját függvényt, eljárást) készítünk.

def függvénynév(paraméter1,paraméter2,…):
utasítások

Kilépés, visszatérés a függvényből: return érték (az érték el is maradhat, ha nem ad vissza értéket).

Pl. ha át akarunk váltani másodpercekre egy időpontot:

def mperc(ora, perc, masodperc):
return masodperc + 60*perc + 3600*ora

Beolvasás txt fájlból, helyközzel elválasztott adatok esetén: fajl = open(‘valami.txt’) forras = fajl.read().splitlines() fajl.close()

Ekkor a fájl minden sora a forras lista 1-1 eleme lesz. Ha a sorokban szóközzel elválasztott adatok vannak, így rakhatjuk ezeket az adatok listába:
adatok = [sor.split(‘ ‘) for sor in forras]

Ha pl. csak a 3. sortól kell az adatokat tárolni:
adatok = [forras[i1].split(‘ ‘) for i1 in range(2,len(forras))]

Vannak olyan esetek, amikor nem engedik beolvasni a teljes fájlt, mert túl nagy lenne, nem lehetne tárolni a memóriában. Ilyenkor soronként is végiglépkedhetünk a fájlon.

Fontos, hogy a read() a sorvégi \n karaktereket is beolvassa, ettől meg kell szabadulni.

Pl. a szoveg.txt fájl minden sorában egy-egy szó (és még egy \n karakter) van, és a leghosszabbat kell kiválasztani. fajl = open(‘szoveg.txt’)
leghosszabb = ”
for sor in fajl:
if len(sor[0:len(sor)-1])>len(leghosszabb):
leghosszabb = sor[0:len(sor)-1]
fajl.close()
print(‘A leghosszabb szó:’,leghosszabb)

Fájl írásra megnyitása:
fajl = open(‘kepviselok.txt’,mode=’w’,encoding=’utf-8′)

Általában így használjuk: fajl = open(‘kepviselok.txt’,’w’)

Csak az utf-8-cal írja ki rendesen az ékezetes karaktereket!

Addig nem ír semmit a fájlba, amíg a fájlazonosító.close()-zal le nem zárjuk.

Írás fájlba: print(valami, file=fájlazonosító), de a fájlazonosító.write(valami) is működik.