Kihagyás

Fájlkezelés

  • Olvasás
  • Írás

Open metódus

A pythonban a fájlokkal való munka kulcsfontosságú funkciója az open() függvény.
Az open() függvénynek két paramétere van: fájlnév és mód
Négy különböző módszer létezik a fájl megnyitására:
- r Read - Alaptérmezett érték. Megnyit egy fájlt olvasásra, hiba, ha a fájl nem létezik. - a Append - Megnyit egy fájlt hozzáfűzéshez, létrehozza a fájlt ha nem létezik. - w Write - Megnyit egy fájlt írásra, létrehozza a fájlt, ha nem létezik. - c Create - Létrehozza a megadott fájlt, hibát ad vissza ha a fájl létezik.

Open metódus szintaxisa

Egy fájl megnyitásához olvasásra elegendő megadni a fájl nevét:

f = open("demofile.txt")

A fenti kód ugyanaz, mint:

f = open("demofile.txt", "r")

Figyelem

Győzödjünk meg arról, hogy a fájl létezik, különben hibát kapunk!

Olvasás

Fájl megnyitása

Tegyük fel, hogy a következő fájlunk ugyanabban a mappában található, mint a Python kódunk:

demofile.txt

Szia! Üdvözöl a demofile.txt
Ez a fájl tesztelési célokat szolgál.
Sok szerencsét!

A fájl megnyitásához használjuk a beépített open() függvény. Az open() függvény egy fájlobjektumot ad vissza, amely egy read() metódussal olvassa be a fájl tartalamat:

f = open("demofile.txt", "r")
print(f.read())

Fájl megnyitása abszolút útvonallal

Fájl megnyitása másik mappából:

f = open("/home/myfiles/demofile.txt", "r")
print(f.read())

Fájl egy sorának beolvasása

Egy sort visszaadhatunk a readline() metódussal:

f = open("demofile.txt", "r")
print(f.readline())

A readline() kétszeri meghívásával kiolvashatjuk az első két sort:

1
2
3
f = open("demofile.txt", "r")
print(f.readline())
print(f.readline())

Teljes fájl soronkénti beolvasása

A fájl sorain végignézve soronként olvashatjuk be a teljes fájlt:

for sor in open("demofile.txt"):
    print(sor)

Teljes fájl soronkénti beolvasása és tárolása 2

Összevont formában az előző:

1
2
3
4
5
6
orszagok = list()

for sor in open("orszagok.txt"):
    orszagok.append(sor)

print(orszagok) # orszagok lista kiírása

Vegyük észre!

A for cikluson belül csak egyetlen sor található, mégpedig a listához való hozzáadás! Mást ne írjunk oda!

Fájlok bezárása

Jó gyakorlat, ha a fájlt mindig bezárjuk amikor végeztünk a beolvasással vagy írással. Ezt a close.() metódussal tehetjük meg:

1
2
3
f = open("demofile.txt", "r")
print(f.read())
f.close()

Írás

Írás meglévő fájlba

Ha egy meglévő fájlba szeretnénk írni, hozzá kell adnunk egy paramétert az open() függvényhez:

  • a: append - a fájl végére fűzi a tartalmat
  • w: write - felülír minden létező tartalmat

Fájl tartalmázhoz hozzáfűzés

Nyissuk meg a fájlt és fűzzünk hozzá egy új sort a tartalmához, majd nyissuk meg ismét a fájlt.

1
2
3
f = open("demofile2.txt", "a")
f.write("Új tartalom hozzáadása a fájlhoz!")
f.close()

Fájl tartalmának felülírása

Nyissuk meg a fájlt és írjuk felül a tartalmát, majd nyissuk meg ismét a fájlt!

1
2
3
f = open("demofile2.txt", "w")
f.write("Mostantól ez a fájl tartalma.")
f.close()

Lista tartalmának fájlba írása

Egy lista tartalmát a következő lépések sorozatával tudjuk fájlba írni:

1
2
3
4
5
6
7
8
fajl = open("fajl.txt", "w")
autok = ["BMW", "Ford", "Ferrari"]

for auto in autok:
    sor = auto + "\n"
    fajl.write( auto + "\n" )

fajl.close()

Megjegyzés

A fenti módszer használatos minden összetett adattípus esetében (list, halmaz, szótár, tuple).

Fájl törlése

Fájl törléséhez importálnunk kell az operácios rendszer modult, majd meghívnunk az os.remove() függvényt.

import os
os.remove("demofile.txt")

Fájl létezésének ellenőrzése

A hibák elkerülése érdekében ellenőriznünk kell törlése előtt, hogy a fájl létezik-e.

1
2
3
4
5
6
import os

if os.path.exists("demofile.txt"):
    os.remove("demofile.txt")
else:
    print("A fájl nem létezik!")

Könytár (mappa) törlése

A hibák elkerülése érdekében ellenőriznünk kell törlése előtt, hogy a fájl létezik-e.

import os
os.rmdir("mappanev")

Mappa létezésének ellenőrzése

A hibák elkerülése érdekében ellenőriznünk kell törlése előtt, hogy a mappa létezik-e.

1
2
3
4
5
6
import os

if os.path.exists("mappanev"):
    os.rmdir("mappanev")
else:
    print("A mappa nem létezik!")