Tiedoston avulla ohjelma voi muistaa tietoa ohjelman suorituskertojen välillä.
Seuraava ohjelma kirjoittaa tiedostoon kolme riviä tekstiä:
def main(): tiedosto = open("testi.txt", "w") tiedosto.write("Ensimmäinen rivi\n") tiedosto.write("Toinen rivi\n") tiedosto.write("Kolmas rivi\n") tiedosto.close() main()
Ohjelman tuloksena syntyy tiedosto testi.txt:
Ensimmäinen rivi Toinen rivi Kolmas rivi
Seuraava ohjelma lukee ja tulostaa kolme riviä tiedostosta:
# -*- coding: utf-8 -*- def main(): tiedosto = open("testi.txt", "r") eka = tiedosto.readline() toka = tiedosto.readline() kolmas = tiedosto.readline() print eka print toka print kolmas tiedosto.close() main()
Ohjelman tulostus on seuraava:
Ensimmäinen rivi Toinen rivi Kolmas rivi
Joka rivin perässä on kaksi rivinvaihtoa, koska riveissä on valmiiksi yksi rivinvaihto ja print-komento saa aikaan vielä toisen.
"Ylimääräisen" rivinvaihdon saa pois komennon strip avulla:
# -*- coding: utf-8 -*- def main(): tiedosto = open("testi.txt", "r") eka = tiedosto.readline() toka = tiedosto.readline() kolmas = tiedosto.readline() print eka.strip() print toka.strip() print kolmas.strip() tiedosto.close() main()
Nyt ohjelman tulostus on seuraava:
Ensimmäinen rivi Toinen rivi Kolmas rivi
Seuraava ohjelma tallentaa käyttäjän nimen tiedostoon nimi.txt. Jos tiedostoa ei ole olemassa, ohjelma kysyy käyttäjältä nimeä ja tallentaa sen tiedostoon. Jos tiedosto on olemassa, ohjelma tulostaa käyttäjän nimen suoraan.
# -*- coding: utf-8 -*- import os def main(): if os.path.exists("nimi.txt"): tiedosto = open("nimi.txt", "r") nimi = tiedosto.readline() tiedosto.close() print "Nimesi on " + nimi else: print "Anna nimesi: " nimi = raw_input() tiedosto = open("nimi.txt", "w") tiedosto.write(nimi) tiedosto.close() print "Kiitos!" main()
Ohjelman ensimmäinen suorituskerta:
Anna nimesi: Pekka Kiitos!
Ohjelman toinen suorituskerta:
Nimesi on Pekka
Tiedoston nimi.txt sisältö:
Pekka