Hoofdstuk 15 Tekstbestanden: Uitwerkingen


Opdracht 15.1 - Foutmelding herkennen

Geen uitwerking beschikbaar.
  1. Door de code te runnen zie je dat er in "groet.txt" het volgende staat:
    Hallo!
    Hoe gaat het?
  2. Links zie je de map met bestanden staan, waaronder dit Jupyter bestand met de code.
  3. Door het bestand "groet.txt" te openen zie je dat daarin het volgende staat:
    Hallo!
    Hoe gaat het?
  4. Je krijgt een foutmelding met bovenaan het volgende:
    FileNotFoundError
    De foutmelding geeft aan dat het bestand niet bestaat.
  5. In "afscheid.txt" staat het volgende:
    Nou, is het alweer tijd om gedag te zeggen?

Opdracht 15.2 - Inhoud afdrukken

bestand = open("dikkertjeDap.txt", "r")						#open bestand

inhoud_lijst = bestand.readlines() 					#zet inhoud in een lijst, elk regel als aparte element

for regel in inhoud_lijst:
	print(regel, end="")											#print elk element uit lijst, zonder extra lege regel van de print

bestand.close()															#sluit bestand

Opdracht 15.3 - Letters tellen

bestand = open("dikkertjeDap.txt", "r")  #open bestand om te lezen	
tekst = bestand.read()	    #sla inhoud van bestand op in variabele

aantal_A = tekst.count('A')
aantal_A += tekst.count('a')

bestand.close()		            #sluit bestand

print ("In de tekst staan", aantal_A, "A's.")
of
bestand = open("dikkertjeDap.txt", "r")  #open bestand om te lezen	
tekst = bestand.read()	    #sla inhoud van bestand op in variabele

aantal_a = tekst.count("a")
aantal_A = tekst.count("A")

bestand.close()		            #sluit bestand

print ("In de tekst staan", aantal_a, "a's en", aantal_A, "A's.")
print(inhoud)

Opdracht 15.4 - In bestand schrijven

tekst = input("Geef een regel tekst om in het bestand te zetten: ")

bestand1 = open("mijn_eigen_bestand.txt", "w")
bestand1.write(tekst)
bestand1.close()

bestand2 = open("mijn_eigen_bestand.txt", "r")
tekst_in_bestand = bestand2.read()
print("Dit staat er nu in het bestand: ", tekst_in_bestand)
bestand2.close()

Opdracht 15.5 - Bestanden kopiëren

leesbestand = open("kuikentjePiep.txt", "r")          #open bestand om te lezen	
tekst = leesbestand.read()	            #sla inhoud van bestand op in een string variabele
leesbestand.close()		            #sluit bestand

schrijfbestand=  open("writetest.txt", "w") #open/maak bestand om in te schrijven
schrijfbestand.write(tekst)                  #schrijf tekst in bestand
schrijfbestand.close() 	                    #sluit bestand

Opdracht 15.6 - Van lijst naar bestand

lijst= ["rood\n","wit\n", "blauw"]

bestand = open("uitvoer.txt", "w")
bestand.writelines(lijst)

bestand.close()

Opdracht 15.7 - Toevoegen aan een bestand

Met "a" plak je steeds tekst achteraan bestaande tekst in een bestand. Je overschrijft dus niets.
Met “w” wordt alle oude tekst overschreven.

Opdracht 15.8 - Van bestand naar scherm

bestand = open("emailadressen.csv", "r")

bestand_als_lijst = bestand.readlines() # zet elk regel in een lijst
print(bestand_als_lijst)

#DEEL A
for persoonsgegevens in bestand_als_lijst:
  gegevens_van_persoon = persoonsgegevens.split(';') #maak per persoon een lijst van stand, zoals: ["Renske Weeda",r.weeda@montessoricollege.nl]

  naam = gegevens_van_persoon[0] #de naam is het eerste element
  emailadres = gegevens_van_persoon[1] #het e-mailadres is het tweede element
  print("Het e-mailadres van " +naam + " is " + emailadres, end="") #druk af, zonder nieuwe regel

#DEEL B
  naam_als_lijst = naam.split(' ')
  voornaam = naam_als_lijst[0]	#de voornaam is altijd het eerste element
  achternaam = naam_als_lijst[1]
  print("Voornaam is: " + voornaam)
  print("Achternaam is: " + achternaam, "\n")


bestand.close()

H15: Afsluitende opdrachten: UITWERKINGEN

Afsluitende opdracht 15.1 Vat samen

Samenvatting: Er wordt een lijst gemaakt van de inhoud van het bestand, waarbij elk woord een apart element in de lijst wordt.
Ter informatie, in detail gebeurt het volgende:
  1. Het programma leest de inhoud van bestand 'invoer_bestand.txt' in.
  2. Alle returns (of te wel '\n') worden verwijderd.
  3. Alle komma's worden verwijderd.
  4. Alle komma's worden verwijderd.
  5. Alle inhoud wordt in een lijstje gezet.
  6. De lijst wordt geprint naar het scherm.

Afsluitende opdracht 15.2 Hoofdletters maken van tekst in een bestand

leesbestand_handle = open("kuikentjePiep.txt", "r") #open bestand om te lezen	
tekst = leesbestand_handle.read() #sla inhoud van bestand op in variabele
tekst = tekst.upper()
print(tekst)
leesbestand_handle.close()	 #sluit bestand

schrijfbestand_handle = open("kuikentjePiepGroot.txt", "w") #open/maak bestand om in te schrijven
schrijfbestand_handle.write(tekst)                  #schrijf tekst in bestand
schrijfbestand_handle.close() 	                    #sluit bestand

Afsluitende opdracht 15.3: Gebruikersinvoer opslaan

bestand = open("hobby.txt", "w")

for i in range (3):
	ingevoerde_hobby = input("Wat is je hobby? ")
	bestand.write(ingevoerde_hobby)
	bestand.write(",")
	
bestand.close()

Afsluitende opdracht 15.4: Het aantal drieletterwoorden

bestand = open("kuikentjePiep.txt", "r")

inhoud = bestand.read()                 # zet tekst in een string
inhoud = inhoud.replace('\n'," ")       #vervang alle nieuwe regels door een spatie
inhoud = inhoud.replace(',',"")         #verwijder alle kommas
inhoud_per_woord = inhoud.split(" ")   #zet elk woord als apart element in de lijst


print(inhoud_per_woord)

woord_teller = 0
for woord in inhoud_per_woord:   # voor elk woord in de tekst, herhaal het volgende:
	if len(woord) == 3:                    #zoek de drie-letter woorden
		print("Drieletterwoord gevonden!", woord)
		woord_teller += 1

print(woord_teller)

bestand.close()

Afsluitende opdracht 15.5: Persoonlijkebrievengenerator

### LEES GEGEVENS IN
bestand = open("abo_gegevens.txt", "r")

inhoud = bestand.read()
inhoud = inhoud.replace('\n'," ")       #vervang alle nieuwe regels door een spatie
inhoud = inhoud.split(" ")   #zet elk woord als apart element in de lijst
							#je kunt ook split("\n") gebruiken
print("Inhoud", inhoud)

voornaam = inhoud[0]
databundel = inhoud[1]
belminuten = inhoud[2]
maandprijs = inhoud[3]

#### PRINT BRIEF
print("Beste " + voornaam + ",\n")
print("Welkom bij KPN. Je hebt een abonnement afgesloten met " + databundel + "data en " + belminuten + " belminuten." )
print("Het abonnement kost " + maandprijs + " per maand.")
print("Namens KPN wensen je veel plezier met je nieuwe abonnement!")