Fájlkezelés
Fájl megnyitása
A fájl olvasásához vagy írásához először meg kell nyitni a fájlt az open()
függvénnyel. Ez a függvény létrehoz egy fájl objektumot, amelyet más támogató módszerek hívására használhatunk.
Különböző módon nyithatunk meg egy fájlt:
with open("file_name.txt", "r") as file:
# code here
file = open("file_name.txt", "r")
# code here
file.close() # Make sure you close the file after you're done, to free up memory
Példa 1 esetén a fájl objektumhoz hozzáférhetsz, amíg a with
blokkban vagy.
Példa 2 esetén a fájlhoz hozzáférhetsz, amíg nem zártad be a fájlt, és még a definíció hatókörén belül vagy.
Fájlkezelési módok
A fájlok megnyitásakor különböző módokat használhatunk:
Mód | Jelentése |
---|---|
r | Olvasás |
a | Hozzáfűzés |
w | Írás |
x | Létrehozás |
A különbség az a
és w
között az, hogy az a
a tartalmat a fájl végéhez fűzi hozzá, míg a w
felülírja a fájl tartalmát.
Meghatározhatod, hogy milyen módot szeretnél használni a fájl megnyitásakor:
Standard method
file = open("file_name.txt", "r") # Open file in read mode
# code here
file.close() # Close file
file = open("file_name.txt", "w") # Open file in write mode
# code here
file.close() # Close file
Metódusok
Read
Egész fájl olvasása
with open("file_name.txt", "r") as file:
content = file.read()
print(content) # Prints the whole file
Soronkénti olvasás
The readlines()
method reads the whole file line by line and returns a list of lines.
with open("file_name.txt", "r") as file:
content = file.readlines() # list[str], the file's content is separated at \n
for line in content:
print(line) # Prints each line
Adatok szétválasztása
with open("file_name.txt", "r") as file:
content = file.read().split(";") # Separate the content by ;
for word in content:
print(word) # Prints each word
Fentiek kombinálása
Hasznos, ha soronként szeretnél adatokat olvasni, miközben a tartalmat egy adott karakterrel szeretnéd szétválasztani.
with open("file_name.txt", "r") as file:
result = []
content = file.readlines()
for line in content:
result.append(line.split(";"))
print(result) # Will be a list of lists, that contain the words of each line