Tiedostojen avaaminen with-lausekkeella

Pythonissa on kätevä with-lauseke, joka kutsuu automaattisesti close-funktiota kun tiedoston käyttö lopetetaan. Luetaan tiedosto moolimassat.txt käyttäen with-lauseketta:

with open("moolimassat.txt", "r") as mmtiedosto:
    # Ylläoleva rivi avaa tiedoston "moolimassat.txt", jonka jälkeen
    # se on käytettävissä "mmtiedosto"-nimisenä tiedosto-oliona
    # sisennetyn rakenteen sisällä
    rivi1 = mmtiedosto.readline()

# Tässä kohti ohjelma poistuu with-lausekkeesta (huomaa sisennyksen muutos)
# with-lauseke sulkee automaattisesti tiedosto-olion "mmtiedosto"
print(rivi1)

with-lauseke ja virheenkäsittely

Virheenkäsittelyn näkökulmasta with-lauseke korvaa siis seuraavan try-finally -rakenteen:

mmtiedosto = open("moolimassat.txt", "r")
try:
    rivi1 = mmtiedosto.readline()
    print(rivi1)
finally:
    # Tämä osio suoritetaan aina
    mmtiedosto.close()

Koska myös open-funktion mahdolliset virheet on tärkeää käsitellä, with-lausekkeesta on parasta käyttää seuraavaa muotoa:

try:
    with open("moolimassat.txt", "r") as mmtiedosto:
        rivi1 = mmtiedosto.readline()
        print(rivi1)
except OSError:
    print("Tiedoston moolimassat.txt avaaminen epaonnistui!")

Tämä viimeinen esimerkki on minimivaatimus virheenkäsittelylle tiedostoja avattaessa!

Tehtävä 5.6.1