Tiedostojen avaaminen ja käsittely

Tiedostojen avaaminen open-funktiolla

Tiedostot avataan Pythonissa open-funktiolla, jota kutsutaan näin:

tiedosto = open(tiedoston_nimi_merkkijonona, tila)

Esimerkiksi komento

datat = open("data.txt", "r")

avaa tiedoston data.txt lukemista varten (parametrin tila arvo on "r", eli read).

Toinen esimerkki, missä kysytään avattavan tiedoston nimi käyttäjältä:

nimi = input("Anna avattavan tiedoston nimi")
tiedosto = open(nimi, "r")

Oletuksena avattava tiedosto avataan samasta hakemistosta, missä ohjelmaa suoritetaan. Tyypillisesti tämä on sama hakemisto, missä ohjelman .py-tiedosto sijaitsee.

Voit antaa avattaessa myös kokonaisen tiedostopolun:

datat = open("Z:\datat\data.txt", "r")

Parametrin tila tyypillisimmät arvot ovat

  • "r" eli read: avataan tiedosto lukemista varten:
  • "w" eli write: avataan tiedosto kirjoittamista varten:
    • Jos tiedostoa ei ole olemassa, open luo uuden tiedoston
    • Jos tiedosto on jo olemassa, open luo uuden tyhjän tiedoston olemassaolevan tiedoston päälle
  • "a" eli append: avataan tiedosto kirjoittamista varten:
    • Jos tiedostoa ei ole olemassa, open luo uuden tiedoston
    • Jos tiedosto on jo olemassa, tiedostoon kirjoitettavat tiedot lisätään sen loppuun (ei tyhjennä tiedostoa kuten "w")

Tiedostojen käsittely

open-funktio joka palauttaa ns. tiedosto-olion. jonka avulla tiedostoa voi käsitellä. Avataan tiedosto mittaukset.txt lukemista varten:

mittaukset = open("Z:\fyke\mittaukset.txt", "r")

Muuttuja mittaukset on nyt tiedosto-olio, jonka avulla tiedostoa käsitellään. Esimerkiksi ensimmäisen rivin lukeminen tiedostosta onnistuisi näin:

rivi = mittaukset.readline()

Tiedoston lukemisesta ja tiedostoon kirjoittamisesta kerrotaan lisää yksityiskohtia seuraavassa luvussa. Tällä kurssilla käsittelemme vain tekstitiedostoja ja tähän käytämme pääasiassa for-silmukkaa.

Tiedostojen sulkeminen close-funktiolla

Kun tiedoston käsittely lopetetaan se pitää sulkea close-funktiolla:

mittaukset = open("Z:\fyke\mittaukset.txt", "r")
rivi1 = mittaukset.readline()
print("Eka rivi:", rivi1)
mittaukset.close()

Tiedoston sulkeminen on erittäin tärkeää! Jos kirjoitat tiedostoon, mutta jätät tiedoston sulkematta, tiedot eivät välttämättä tallennu!

Tehtävä 5.1.1