Tiedostojen käsittely Pythonissa
Tiedoston Avaaminen
Pythonissa tiedoston avaaminen on yksinkertaista open()
-funktiolla:
file = open('esimerkki.txt', 'r')
funktiossa voidaan käyttää erilaisia merkkejä kuvaamaan tiedoston avaustilaa. Tässä ovat yleisimmät:
-
'r': Tämä on oletustila. Se avaa tiedoston vain luku -tilassa. Jos tiedostoa ei ole olemassa, se palauttaa
FileNotFoundError
. -
'w': Tämä tila avaa tiedoston vain kirjoitus -tilaan. Olemassa oleva tiedosto tällä nimellä poistetaan ennen uuden luomista. Jos tiedostoa ei ole olemassa, se luo uuden.
-
'x': Tämä tila luo uuden tiedoston vain kirjoitus -tilaan. Jos tiedosto on jo olemassa, se palauttaa
FileExistsError
. -
'a': Tämä tila avaa tiedoston kirjoitus -tilaan, mutta tiedoston loppuun. Jos tiedostoa ei ole, se luo uuden.
-
'b': Tämä tila avaa tiedoston binääritilassa. Se voidaan yhdistää muiden tilojen kanssa (esim. 'rb' avaa tiedoston binääritilassa lukemista varten).
-
't': Tämä tila avaa tiedoston tekstitilassa. Se on oletusarvoinen tila, ja voidaan yhdistää muiden tilojen kanssa.
-
'+': Tämä tila avaa tiedoston päivittämistä varten (luku ja kirjoitus). Se voidaan yhdistää muiden tilojen kanssa (esim. 'r+' avaa tiedoston lukemista ja kirjoittamista varten).
Tiedoston Lukeminen
Tiedostosta lukeminen on helppoa read()
-metodilla:
file = open('esimerkki.txt', 'r')
print(file.read())
file.close()
read()
lukee koko tiedoston. close()
-metodi sulkee tiedoston ja vapauttaa järjestelmäresursseja.
Rivi kerrallaan lukeminen
Voimme lukea tiedoston rivi kerrallaan readline()
-metodilla:
file = open('esimerkki.txt', 'r')
print(file.readline())
file.close()
Huomaa, että 'w'-tila ylikirjoittaa tiedoston, jos se on olemassa. Jos haluat lisätä tekstiä olemassa olevan tiedoston loppuun, käytä 'a' (append) -tilaa.
Tiedoston sulkeminen
On erittäin tärkeää sulkea tiedostot close()
-metodilla, kun olet valmis:
file = open('esimerkki.txt', 'r')
print(file.read())
file.close()
with
avainsana
Pythonin with
avainsanaa voidaan käyttää tiedostojen kanssa. Tämä varmistaa, että tiedosto suljetaan oikein, kun lohko suoritetaan:
with open('esimerkki.txt', 'r') as file:
print(file.read())
Tässä tiedoston avaamisen ja sulkemisen hoitaa with
-lause, joten meidän ei tarvitse huolehtia siitä itse.