Rakenteisten tiedostomuotojen tallentamiseen apua pickle -kirjastosta.
Tiedostoihin voidaan tallentaa tietoja (tekstiä) ja hakea sitä helposti.
Tiedosto täytyy avata (lukemista tai kirjoittamista varten)
Tiedostosta luetaan (read) TAI tiedoston sisältä korvataan (write) TAI lisätään tekstiä (append)
Tiedosto suljetaan.
lukunimi= open("tiedoston_nimi","r") #r=read; w=write; a=append
2.1. Tiedostosta lukeminen (r-avattu)
lukunimi.read(n) lukee n merkkiä
lukunimi.readline() palauttaa 1 rivin
lukunimi.readlines() palauttaa kaikki rivit listana, Rivit jaetaan listan alkioiksi
Luvun luonnissa merkkijono täytyy muuttaa numeroksi joko int(teksti) tai float(teksti) -käskyillä.
2.2. Tiedostoon kirjoittaminen
Tiedosto täytyy olla avattuna w- tai a-muodossa
lukunimi.write(teksti) #lisää annetun tekstin tiedostoon
lukunimi.
lukunimi.close()
tiedosto.tell() # palauttaa lukijan paikan. Kuinka monennen merkin kohdalla
tiedosto.seek(10) # siirtyy parametrina annetun merkin kohdalle (10)
T9.1. Tiedoston luonti
Tee ohjelma joka kysyy käyttäjän lempikukan ja tallentaa vastauksen kukat.txt -nimiseen tiedostoon.
Lue tiedosto esim. muistiolla.
T9.2. Tiedostoon lisääminen
Muotoile edellistä ohjelmaa, niin että se lisää tiedostoon annetun kukan nimen.
esimerkki: Funktiolla toteutettu tiedoston luku ja virhetilanteen käsittely try...except -rakenteella
def lue ja palauta(nimi):
try:
tiedosto = open(nimi,"r")
sisus = tiedosto.readlines() # readfiles???
tiedosto.close()
return sisus
except IOError:
print "tiedoston luku ei onnistu"
return false
Esimerkki: Tiedoston sisällön tulostaminen riveittäin
tiedosto = open(nimi,"r")
sisus = tiedosto.readlines()
for i in sisus:
print (i)
tiedosto.close()