Python

Werken met bestanden

Leerdoelen

  • Leren hoe we bestanden kunnen lezen en schrijven
  • Hoe we controlleren of het goed gegaan is

De file handle

  • Om met bestanden te kunnen werken hebben we een file handle nodig
  • Dat is een variable die verwijst naar een bestand
    fh = open('testbestand.txt')
  • Als we klaar zijn met een bestand moeten we de file handle weer sluiten
    fh.close()

Parameters voor open

fh = open('testbestand.txt', 'rt', encoding="utf-8")
fh.close()
  • rt = read, text

Open Parameters

Parameter Functie Werking
r read Opent een bestand om het te lezen, geeft een error als het bestand niet bestaat. Dit is de default.
w write Opent een bestand om het te schrijven, maakt het bestand aan als het niet bestaat en overschrijft eventueel bestaande inhoud.
a append Opent een bestand om er data aan toe te voegen, maakt het bestand aan als het niet bestaat.
x create Maakt een nieuw, leeg, bestand aan, geeft een error als het bestand bestaat.

Try en except

try:
    fh = open("testbestand.txt", "wt")
except fh.FileNotFoundError:
    print("Bestand niet gevonden")

with ... as

file = "file.txt"
with open('t.txt', 'wt', encoding="utf-8") as fh:
    fh.write("We springen in\r\n")
    fh.write("Stopt het inspringen, ")
    fh.write("dan is er automatisch een close.\r\n")

# Rest van de code

Werken met hele bestanden

with open(file, 'rt', encoding="utf-8") as fh:
    file = fh.readlines()
for line in file:
    print(line)
  • Het hele bestand wordt in 1x in het geheugen geladen
  • Kan meerdere keren vanuit het geheugen gebruikt worden

Regel voor regel

with open(file, 'rt', encoding="utf-8") as fh:
    for line in fh:
        print(f"{line}\n", end='')
  • Het bestand wordt regel voor regel in gelezen
  • Verwerking wordt per regel verricht

Samenvatting

  • We hebben gezien hoe we bestanden kunnen lezen en schrijven
  • Met try ... except kunnen we errors afvangen
  • Met with ... as hoeven we geen close te gebruiken
  • We kunnen hele bestanden inlezen of regel voor regel