Tie koodariksi

Ohjelmoinnin alkeet

Liite 3: Tiedostojen käyttäminen

Tiedostojen avulla voimme käsitellä kätevästi suuria tietoaineistoja. Netissä on saatavilla monenlaisia aineistoja, joita voimme tutkia automaattisesti ohjelmoimalla.

Tiedoston lukeminen

Tarkastellaan esimerkkinä tiedostoa testi.txt:
apina
banaani
cembalo
Seuraavan koodin ensimmäinen rivi lukee tiedoston rivit listaan rivit. Tämän jälkeen koodi tulostaa rivien määrän ja jokaisen rivin yksitellen.
rivit = open("testi.txt").read().splitlines()
print(len(rivit))
for rivi in rivit:
    print(rivi)
Koodin tulostus on seuraava:
3
apina
banaani
cembalo

Esimerkki: Sanalista

Voit ladata tästä suomen kielen sanalistan, jossa on 94110 sanaa. Lista perustuu Kotimaisten kielten keskuksen julkaisemaan Nykysuomen sanalistaan.

Tämän tiedoston avulla voimme tutkia, millaisia sanoja suomen kielessä on. Esimerkiksi seuraava ohjelma tulostaa kaikki sanat, joiden pituus on 15 kirjainta ja joiden osana on merkkijono "str".

sanat = open("sanat.txt").read().splitlines()
for sana in sanat:
    if len(sana) == 15 and "str" in sana:
            print(sana)
Ohjelma tulostaa nämä sanat:
australialainen
gastronomisesti
infrastruktuuri
instrumentaatio
instrumentointi
konstruktivismi
mikrostruktuuri
radioastronomia
raivaustraktori
strukturaalinen
Seuraava ohjelma puolestaan laatii tilaston sanojen pituuksista. Ohjelma käyttää hyväkseen tietoa siitä, että tiedoston pisimmässä sanassa on 30 kirjainta.
sanat = open("sanat.txt").read().splitlines()
tilasto = [0]*31
for sana in sanat:
    tilasto[len(sana)] += 1
for i in range(1,31):
    print("pituuden",i,"sanoja on",tilasto[i])
Ohjelman tulostus on seuraava:
pituuden 1 sanoja on 0
pituuden 2 sanoja on 35
pituuden 3 sanoja on 208
pituuden 4 sanoja on 1097
pituuden 5 sanoja on 3329
pituuden 6 sanoja on 4399
pituuden 7 sanoja on 6237
pituuden 8 sanoja on 8537
pituuden 9 sanoja on 11331
pituuden 10 sanoja on 12434
pituuden 11 sanoja on 10780
pituuden 12 sanoja on 9036
pituuden 13 sanoja on 7734
pituuden 14 sanoja on 6320
pituuden 15 sanoja on 4515
pituuden 16 sanoja on 2916
pituuden 17 sanoja on 2032
pituuden 18 sanoja on 1253
pituuden 19 sanoja on 824
pituuden 20 sanoja on 462
pituuden 21 sanoja on 309
pituuden 22 sanoja on 147
pituuden 23 sanoja on 76
pituuden 24 sanoja on 50
pituuden 25 sanoja on 22
pituuden 26 sanoja on 12
pituuden 27 sanoja on 7
pituuden 28 sanoja on 6
pituuden 29 sanoja on 1
pituuden 30 sanoja on 1