Dit is een uitbreiding van Gepersonaliseerde brieven met foutafhandeling1
Het bestand gegevens.csv2 bevat de informatie voor de velden - de eerste lijn van dit bestand werd aangepast!
Bekijk de nieuwe standaardbrief brief_velden.txt3. De invulvelden worden nu met woorden beschreven, en niet met getallen.
Met de gegevens uit de tweede lijn maak je dus dezelfde brief Anneke.txt4.
Pas de procedure personaliseren(briefnaam, gegevens)
aan zodat alle gepersonaliseerde brieven gemaakt worden met de nieuwe standaardbrief. Zoek een oplossing waarin je elk bestand maar één keer opent.
Gewenste foutafhandeling:
Indien één van de bestanden niet gevonden wordt, dan werpt deze functie een eigen exceptie op met als foutbericht: “{bestandsnaam} niet gevonden”
Indien de brief een string [veld]
bevat, maar veld
komt niet voor, dan werpt
deze functie een eigen exceptie op met als foutbericht: “{veld} niet gevonden”
>>> personaliseren("brief_velden.txt","gegevens.csv")
Dit maakt drie brieven aan: Anneke.txt, Jan.txt en Pol.txt
>>> personaliseren("brief_velden.txt","foutbestand.csv")
Exception: foutbestand.csv niet gevonden
Bestanden bestaan, maar het veld email bestaat niet, en wordt wel gebruikt in de brief
>>> personaliseren("brief_velden_fout.txt","gegevens.csv")
Exception: email niet gevonden
Opmerkingen:
Ook in deze opgave moet je ervoor zorgen dat er op het einde van de uitvoerbestanden geen extra newline-karakter toegevoegd wordt. Anders zal Dodona jouw oplossing niet als correct aanvaarden!
De eerste lijn van het bestand gegevens.csv5 gebruik je om een dictionary te maken die elk veld koppelt aan de kolom.