Tiedostojen avaaminen ja käsittely

Tiedostojen avaaminen open-funktiolla

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

tiedosto = open(tiedoston_nimi, tila)

Esimerkiksi komento

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

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

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 ja sulkeminen 

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 tapahtuu näin:

rivi = mittaukset.readline()

Tiedoston lukemisesta ja tiedostoon kirjoittamisesta lisää yksityiskohtia seuraavassa luvussa.

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

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!

Eli yhteenvetona tiedoston avaaminen, 1. rivin lukeminen ja tiedoston sulkeminen:

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