web2 logo

Werken met bestanden

Python kent twee soorten bestanden: tekstbestanden en binaries. Tekstbestanden kan je per regel lezen en schrijven, binaries per byte.

Een bestand openen

Een bestand openen wijst deze toe aan een variabele die het file object gaat bevatten:
variabele = open("bestandsnaam", "mode")
De bestandsnaam mag voorafgegaan worden door een bestandspad.
Met "mode" wordt aan gegeven op welke manier het bestand gebruikt wordt:
r = alleen lezen (dit is de default als "mode" wordt weggelaten bij het openen van een bestand)
w = schrijven, reeds bestaande inhoud wordt hiermee gewist
a = toevoegen (append), bestaande inhoud wordt bewaard en nieuw inhoud wordt toegevoegd aan het einde van het bestand
r+ = zowel lezen als schrijven

Een tekstbestand maken

De combinatie "\n" wordt gebruikt om een nieuwe regel aan te geven: bestand = open("testbestand.txt","w")

bestand.write("Hallo Wereld.\n")
bestand.write("Dit is een tweede regel.\n")
bestand.write("Dit is nog een regel.\n")
bestand.write("Dit is de laatste regel.\n")

bestand.close()

In plaats van elke regel apart, kan je ook meerdere regels tegelijk wegschrijven:
bestand = open("testbestand.txt","w")

regels=("Hallo Wereld.\n","Dit is een tweede regel.\n","Dit is nog een regel.\n","Dit is de laatste regel.\n")
bestand.writelines(regels)

bestand.close()

Een bestand geheel lezen

Het hele bestand in een keer lezen kan met read:
bestand = open("testbestand.txt", "r")
print (bestand.read())
Uitvoer:
Hallo Wereld.
Dit is een tweede regel.
Dit is nog een regel.
Dit is de laatste regel.

Een aantal letters uit het bestand lezen

bestand = open("testbestand.txt", "r")
print (bestand.read(5))
Uitvoer:
Hallo

Een regel uit een bestand lezen

bestand = open("testbestand.txt", "r")
print (bestand.readline())
Uitvoer:
Hallo Wereld.

Alle regels uit een bestand lezen

Methode 1:
bestand = open("testbestand.txt", "r")
print (bestand.readlines())
Uitvoer:
['Hallo Wereld.\n', 'Dit is een tweede regel.\n', 'Dit is nog een regel.\n', 'Dit is de laatste regel.\n']
Methode 2:
bestand = open("testbestand.txt", "r")
for regel in bestand:
    print (regel)
Uitvoer:
Hallo Wereld.

Dit is een tweede regel.

Dit is nog een regel.

Dit is de laatste regel.

Tekst aan een bestaand bestand toevoegen

bestand = open("testbestand.txt", "a")

bestand.write("Dit wordt toegevoegd\n")
bestand.write("aan het einde van het bestand.\n")

bestand.close()

bestand = open("testbestand.txt", "r")
print (bestand.read())
Uitvoer:
Hallo Wereld.
Dit is een tweede regel.
Dit is nog een regel.
Dit is de laatste regel.
Dit wordt toegevoegd
aan het einde van het bestand.

Een With blok gebruiken

Met een With blok hoef je geen close-statement te gebruiken, dat gebeurt automatisch na afloop van het With blok.
#toevoegen (append):
with open("testbestand.txt","a") as bestand:
    bestand.write("nog een regel erbij.\n")

#alleen lezen:
with open("testbestand.txt") as bestand:
    for regel in bestand:
        print (regel)
Uitvoer:
Hallo Wereld.

Dit is een tweede regel.

Dit is nog een regel.

Dit is de laatste regel.

Dit wordt toegevoegd

aan het einde van het bestand.

nog een regel erbij.

Bestand splitsen op spaties

with open("testbestand.txt", "r") as bestand:
    data = bestand.readlines()

for regel in data:
    woorden = regel.split()
    print (woorden)
Uitvoer:
['Hallo', 'Wereld.']
['Dit', 'is', 'een', 'tweede', 'regel.']
['Dit', 'is', 'nog', 'een', 'regel.']
['Dit', 'is', 'de', 'laatste', 'regel.']
['Dit', 'wordt', 'toegevoegd']
['aan', 'het', 'einde', 'van', 'het', 'bestand.']
['nog', 'een', 'regel', 'erbij.']

Toegevoegd door: Kees de Keijzer
Twitter: @kdkq

python

Onderwerpen

Dit is een website zonder pop-ups

Links

Design & Development by Cyberwebdesign.nl for web2.nl © 2018.