Python Academy · Les

De with-instructie voor bestanden gebruiken

Zorg ervoor dat bestanden automatisch worden gesloten met contextmanagers.

Les 3 van 414 stappen

De with-instructie voor bestanden gebruiken is een gratis Python Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.

Inleiding

De with-instructie zorgt ervoor dat bestanden automatisch worden gesloten, ook als er een uitzondering optreedt.

De with-instructie

with open('file.txt') as f: ... sluit f automatisch wanneer het blok wordt verlaten, zowel normaal als door een uitzondering.
# with open('data.txt') as f:
#     content = f.read()
# f is now closed
print('with demo')

Waarom with beter is dan try/finally

Zonder with moet je try: ... finally: f.close() schrijven om het sluiten te garanderen. with regelt dit automatisch.
# Equivalent to:
# f = open('file.txt')
# try:
#     content = f.read()
# finally:
#     f.close()
print('comparison demo')

Meerdere bestanden

with open('a.txt') as a, open('b.txt') as b: opent twee bestanden in één instructie.
# with open('in.txt') as src, open('out.txt','w') as dst:
#     for line in src:
#         dst.write(line.upper())
print('multi-file demo')

Protocol voor contextbeheerders

with gebruikt __enter__ en __exit__. open() retourneert een bestandobject dat deze methoden implementeert. Later schrijven we er zelf een.
# f.__enter__() opens
# f.__exit__() closes
print('protocol demo')

Lezen en verwerken

Combineer with, for line in f: en .strip() voor het netjes verwerken van regels: verwijder nieuwe regels en sla lege regels over.
lines = ['  hello  \n', '  world  \n']
cleaned = [l.strip() for l in lines if l.strip()]
print(cleaned)

Schrijven met with

with open('out.txt','w') as f: f.write('data') — het bestand wordt weggeschreven en gesloten wanneer het blok wordt verlaten.
# with open('out.txt', 'w') as f:
#     for i in range(10):
#         f.write(f'{i}\n')
print('write with demo')

Controleren of een bestand bestaat

import os; os.path.exists('file.txt') retourneert True als het bestand bestaat. Dit voorkomt FileNotFoundError.
import os
print(os.path.exists('/tmp'))
print(os.path.exists('/nonexistent'))

Fouten van open()

FileNotFoundError: het bestand bestaat niet. PermissionError: je hebt geen lees- of schrijfrechten. Gebruik try/except voor een robuuste afhandeling.
try:
    with open('/nonexistent.txt') as f:
        pass
except FileNotFoundError as e:
    print('File not found:', e)

StringIO voor bestanden in het geheugen

from io import StringIO laat je een tekenreeks als bestandobject gebruiken — ideaal voor het testen van code die bestanden verwerkt.
from io import StringIO
buf = StringIO('line1\nline2\n')
for line in buf:
    print(line.rstrip())

De module tempfile

tempfile.NamedTemporaryFile() maakt een tijdelijk bestand dat bij het sluiten wordt verwijderd. Veilig voor het verwerken van tijdelijke gegevens.
import tempfile
with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=True) as f:
    f.write('temp data')
    print(f.name)

Korte controle

Wat garandeert de with-instructie wanneer je die gebruikt voor bestandsinvoer en -uitvoer?

Samenvatting

with open(f) as h: sluit h automatisch. Gebruik meerdere doelen voor meerdere bestanden. StringIO is handig voor testen in het geheugen. Handel FileNotFoundError netjes af.

Ga door

Goed gedaan! Ga door naar de volgende les om verder te komen.
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
320

Veelgestelde vragen

Is de les “De with-instructie voor bestanden gebruiken” gratis?

Ja — de volledige tekst van “De with-instructie voor bestanden gebruiken” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.

Wat leer ik in “De with-instructie voor bestanden gebruiken”?

Zorg ervoor dat bestanden automatisch worden gesloten met contextmanagers. Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Python Academy te beginnen?

Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “De with-instructie voor bestanden gebruiken”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Python Academy?

Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Bestanden openen en lezen
  2. Naar bestanden schrijven en eraan toevoegen
  3. De with-instructie voor bestanden gebruiken
  4. Werken met bestandspaden met pathlib
← Terug naar Python Academy