Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Werken met Verschillende Bestandsmodi | Advanced File Handling & Context Managers
Python Structureel Programmeren

Werken met Verschillende Bestandsmodi

Veeg om het menu te tonen

Leer hoe je verschillende bestandsmodi in Python gebruikt voor het lezen, schrijven en toevoegen van bestanden met praktische voorbeelden.

Python-bestandsmodi omvatten: 'r' voor lezen, 'w' voor schrijven (maakt aan/overschrijft), 'a' voor toevoegen (maakt aan indien ontbrekend), 'b' voor binaire modus, en '+' voor lezen/schrijven. Kies de juiste modus om dataverlies te voorkomen.

Leesmodus

De leesmodus ('r') opent een bestaand bestand alleen voor lezen. Je kunt het bestand niet schrijven of wijzigen in deze modus. Als het bestand niet bestaat, geeft Python een FileNotFoundError. Gebruik deze modus wanneer je gegevens uit een bestand wilt ophalen en lezen zonder de inhoud te wijzigen.

123456
with open("sample.txt", "w") as f: f.write("This is a sample file.\nSecond line.") with open("sample.txt", "r") as f: content = f.read() print(content)

Deze code maakt een tekstbestand aan met voorbeeldinhoud en leest vervolgens de inhoud uit het bestand en drukt deze af.

Schrijfmodus

De schrijfmodus (w) in Python opent een bestand om te schrijven. Gebruik de w-modus wanneer je een nieuw bestand wilt aanmaken of een bestaand bestand wilt leegmaken om de inhoud te vervangen. Let op: alle bestaande gegevens in het bestand gaan verloren wanneer je het opent met de w-modus.

1234567891011
with open("write_example.txt", "w") as file: file.write("This file was created or overwritten using write mode.\n") with open("write_example.txt", "r") as file: print(file.read()) with open("write_example.txt", "w") as file: file.write("Every time you run this code, the contents are replaced.\n") with open("write_example.txt", "r") as file: print(file.read())

Deze code toont de inhoud van het bestand na de eerste schrijfactie en vervolgens na het overschrijven, zodat je kunt zien hoe eerdere gegevens worden gewist en vervangen door nieuwe inhoud.

Toevoegmodus

Toevoegmodus, gespecificeerd door de bestandsmodus 'a', opent een bestand om te schrijven door nieuwe inhoud aan het einde van het bestand toe te voegen. Als het bestand niet bestaat, wordt het automatisch aangemaakt. Deze modus is handig wanneer je bestaande gegevens wilt behouden en eenvoudig meer informatie aan het einde wilt toevoegen, zoals het loggen van nieuwe vermeldingen of het bijwerken van records in de loop van de tijd. In tegenstelling tot schrijfmogus ('w'), verwijdert of overschrijft toevoegmodus nooit bestaande inhoud.

123456789
with open("append_example.txt", "w") as f: f.write("Original line\n") with open("append_example.txt", "a") as f: f.write("Appended line\n") with open("append_example.txt", "r") as f: result = f.read() print(result.strip())

Deze code maakt eerst een bestand aan met een initiële inhoud. Vervolgens wordt hetzelfde bestand geopend in de append-modus ('a') om een nieuwe regel aan het einde toe te voegen. Ten slotte wordt de volledige inhoud van het bestand gelezen en afgedrukt, zodat je kunt zien dat de nieuwe gegevens aan het einde zijn toegevoegd zonder de oorspronkelijke inhoud te verwijderen of te wijzigen.

Binaire modus

De binaire modus wordt gebruikt wanneer je bestanden als bytes in plaats van tekst moet lezen of schrijven. Dit is essentieel voor het werken met niet-tekstbestanden, zoals afbeeldingen, audiobestanden of uitvoerbare bestanden. Je combineert 'b' met andere bestandsmodi, zoals 'rb' voor lezen in binaire modus of 'wb' voor schrijven in binaire modus.

Wanneer je een bestand in binaire modus opent, worden gegevens exact als ruwe bytes gelezen en geschreven. Er vindt geen codering of decodering plaats, dus je moet de gegevens behandelen als bytes-objecten. Dit voorkomt problemen die kunnen ontstaan bij het lezen of schrijven van bestanden die geen standaard tekstcodering gebruiken.

12345678
byte_data = b"\x48\x65\x6c\x6c\x6f, binary world!" # This is 'Hello, binary world!' in bytes with open("sample_binary.bin", "wb") as f: f.write(byte_data) with open("sample_binary.bin", "rb") as f: read_bytes = f.read() print(read_bytes)

De code schrijft een byte-string met het bericht 'Hello, binary world!' naar een bestand met de naam sample_binary.bin met behulp van de write-binary modus ('wb'). De b in de modus zorgt ervoor dat het bestand als binaire data wordt behandeld, niet als tekst. Na het schrijven wordt het bestand opnieuw geopend in read-binary modus ('rb') om de ruwe bytes te lezen. De code print vervolgens de leesbare weergave van het bytes-object.

Lees- en schrijfmethode

De r+ bestandsmodus maakt het mogelijk om zowel te lezen uit als te schrijven naar een bestaand bestand. Wanneer een bestand wordt geopend met r+, kunnen de inhoud worden gelezen, aangepast of nieuwe gegevens op elke positie worden toegevoegd. Het bestand moet echter al bestaan - r+ maakt geen nieuw bestand aan als er geen bestand met de opgegeven naam wordt gevonden.

Deze modus is nuttig wanneer gegevens in een bestand moeten worden bijgewerkt of verwerkt zonder de bestaande inhoud te verliezen. Elke schrijfoperatie begint vanaf de huidige positie in het bestand, zodat precies kan worden bepaald waar wijzigingen plaatsvinden met behulp van bestandswijzermethoden zoals seek().

1234567891011121314151617
# Writing initial content to the file with open("data.txt", "w") as f: f.write("First line\nSecond line\n") # Opening the file in r+ mode for reading and updating with open("data.txt", "r+") as f: # Reading and printing the original content original_content = f.read() print("Before update:\n" + original_content.strip()) # Moving file pointer to the beginning f.seek(0) # Overwriting the first line f.write("Updated first line\n") # Moving pointer to the start to read the updated content f.seek(0) updated_content = f.read() print("After update:\n" + updated_content.strip())

Deze uitvoer toont aan dat de eerste regel van het bestand succesvol is overschreven. Met de lees-/schrijfmodus ('r+') kun je specifieke delen van een bestand bijwerken – zoals alleen de eerste regel aanpassen – zonder het hele bestand te wissen of te herschrijven. Dit is handig voor het bewerken van bestaande gegevens terwijl andere inhoud in het bestand behouden blijft.

Wanneer je de modus 'r+' gebruikt, zal alle nieuwe data die je schrijft bestaande inhoud overschrijven vanaf de huidige positie in het bestand. Als de nieuwe inhoud korter is dan het origineel, blijft het resterende deel van de oude regel in het bestand staan. Dit betekent dat gedeeltelijke restanten van de vorige inhoud nog zichtbaar kunnen zijn na het schrijven. Het bestand wordt niet automatisch ingekort, dus wees ervan bewust dat extra tekens uit de oorspronkelijke inhoud kunnen blijven bestaan na het einde van je nieuwe data.

1. Welke bestandsmodus moet je gebruiken als je een bestaand tekstbestand wilt lezen zonder het te wijzigen?

2. Welke bestandsmodus moet je gebruiken om nieuwe data toe te voegen aan het einde van een bestaand tekstbestand zonder de huidige inhoud te verwijderen?

question mark

Welke bestandsmodus moet je gebruiken als je een bestaand tekstbestand wilt lezen zonder het te wijzigen?

Selecteer het correcte antwoord

question mark

Welke bestandsmodus moet je gebruiken om nieuwe data toe te voegen aan het einde van een bestaand tekstbestand zonder de huidige inhoud te verwijderen?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 1

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 2. Hoofdstuk 1
some-alt