ID.nl logo
Zo kun je programmeren in Python - Deel 5
© Reshift Digital
Zekerheid & gemak

Zo kun je programmeren in Python - Deel 5

In de href="https://computertotaal.nl/artikelen/pc/zo-kun-je-programmeren-in-python-deel-4/" rel="noopener noreferrer" target="_blank">vorige les</a> toonden we allerlei manieren om de uitvoer van tekst op het scherm aan te passen. In deze les zetten we de stap van je scherm naar bestanden: we gaan gegevens uit bestanden lezen en naar bestanden schrijven. Daarnaast leer je reageren op exceptions: foutmeldingen die Python je geeft als er iets misgaat.

Twee lessen geleden gebruikte je de functie input om wat de gebruiker op zijn toetsenbord intypt te registreren. En in de vorige les toonden we je hoe je met de functie print uitvoer op het scherm toont. Maar in- en uitvoer kan ook via bestanden verlopen. Laten we eens kijken hoe dat gaat.

Hier kun je les vier bekijken.

We beperken ons in deze les tot het lezen en schrijven van tekstbestanden. Je kunt ook met binaire bestanden werken, die willekeurige data in een andere vorm dan tekst kunnen bevatten, maar dat is wat meer werk omdat je de data nog moet interpreteren. Voor de rest werkt dit hetzelfde.

Een tekstbestand lezen

We tonen hier in een voorbeeld hoe je op een Linux-machine zoals een Raspberry Pi met Raspberry Pi OS (tot voor kort Raspbian geheten) het bestand met de lijst van gebruikers uitleest. Ook op macOS werkt dit voorbeeld. Gebruik je Windows, maak dan zelf een bestand aan met de inhoud die we in ons voorbeeld tonen en pas de locatie van het te openen bestand aan in je Python-code.

De eenvoudigste manier om een volledig tekstbestand uit te lezen en op het scherm te tonen, heeft maar twee regels nodig:

with open('/etc/passwd', 'rt') as bestand:

print(bestand.read())

In de eerste regel openen we het bestand met de functie open. Het eerste argument is het bestand dat we willen openen. We hebben hier een volledig pad gebruikt: '/etc/passwd'. Als je een bestand wilt lezen dat in dezelfde directory staat als waarin je de Python-interpreter hebt opgestart, hoef je geen volledig pad door te geven: de bestandsnaam volstaat dan. Met het tweede argument 'rt' geven we aan dat we het bestand willen lezen en dat het om een tekstbestand gaat.

De constructie met with is wat Python een ‘context manager’ noemt. In het with-blok heb je toegang tot het object bestand dat het geopende bestand voorstelt. Na het with-blok wordt het bestand automatisch gesloten, zodat je het niet meer kunt lezen. Dit lijkt vanzelfsprekend, maar dat is het niet: ook zonder with kun je bestanden openen, maar als je dan het bestand na gebruik vergeet te sluiten, kan dit tot problemen leiden. Werk dus nooit met bestanden zonder with.

In de tweede regel roepen we de functie read op het object bestand aan. Deze functie geeft de volledige inhoud van het tekstbestand terug als een string, die we dan met print op het scherm tonen. Op een typisch Linux-systeem ziet de uitvoer er als volgt uit (we tonen hier maar enkele regels):

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

Enzovoort

Een tekstbestand regel voor regel lezen

Maar wat als we niet het hele bestand in één keer willen inlezen, maar regel voor regel, bijvoorbeeld omdat we willen testen of de regels aan specifieke voorwaarden voldoen? Geen probleem, ook dat is in Python heel eenvoudig. In plaats van de functie read op je bestand toe te passen, ga je dan met een for-lus door de elementen van het bestand. Het tekstbestand dat je van de functie open terugkrijgt, gedraagt zich immers als een lijst met als elementen de opeenvolgende regels in het bestand.

Een string splitsen

Maar als we die regels een voor een gaan inlezen, moeten we er ook iets mee doen. Zoals je ziet, bevat het bestand /etc/passwd op elke regel allerlei informatie over de gebruiker, telkens afgescheiden door een dubbele punt. We willen elk van die gegevens afzonderlijk uitlezen. Dat gaat eenvoudig met de functie split die we op een string kunnen uitvoeren. Bijvoorbeeld:

>>> 'root:x:0:0:root:/root:/bin/bash'.split(':')

['root', 'x', '0', '0', 'root', '/root', '/bin/bash']

Je ziet hier dat we aan de functie split het teken meegeven dat de verschillende componenten van de string afscheidt: ':'. Het resultaat is een lijst met strings die onderdeel uitmaken van onze lange string, zonder de afscheidingstekens ':'.

De opeenvolgende componenten in de regels van het bestand /etc/passwd hebben overigens de volgende betekenis: gebruikersnaam, ongebruikt, ID van de gebruiker, ID van de groep, volledige gebruikersnaam, persoonlijke map van de gebruiker, shell van de gebruiker.

Een lijst uitpakken

Je kunt nu naar de elementen in de gesplitste string verwijzen met een index, bijvoorbeeld:

>>> informatie = 'root:x:0:0:root:/root:/bin/bash'.split(':')

>>> informatie[0]

'root'

>>> informatie[6]

'/bin/bash'

Maar dat is niet heel duidelijk. Zo willen we informatie[0] eigenlijk gebruiker noemen en informatie[6] de naam shell geven. Gelukkig kun je in Python de elementen van een lijst eenvoudig in één keer aan enkele variabelen toekennen. Dat heet unpacking. In ons voorbeeld gaat dat als volgt:

>>> gebruiker, *_, naam, directory, shell = 'root:x:0:0:root:/root:/bin/bash'.split(':')

>>> gebruiker

'root'

>>> _

['x', '0', '0']

>>> naam

'root'

>>> directory

'/root'

>>> shell

'/bin/bash'

De notatie * gebruik je om een willekeurig aantal elementen uit te pakken. Omdat we in dit geval niet in deze elementen geïnteresseerd zijn, kennen we ze toe aan de variabele met de naam _, vandaar dat we bij het uitpakken *_ gebruiken. We konden dit hier ook vervangen door gebruiker, _, _, _, naam, directory, shell.

Gegevens uit een tekstbestand filteren

Dan weet je nu genoeg om de volgende opdracht uit te voeren: lees het bestand met wachtwoorden regel per regel in en als de shell geen '/usr/sbin/nologin' of '/bin/false' is, toon je de gebruikersnaam, volledige gebruikersnaam en persoonlijke map.

De code ziet er als volgt uit:

with open('/etc/passwd', 'rt') as bestand:

for regel in bestand:

gebruiker, *_, naam, directory, shell = regel.strip().split(':')

if shell not in ['/bin/false', '/usr/sbin/nologin']:

print(' {1} ({0}): {2} ({3})'.format(gebruiker, naam, directory, shell))

We openen dus het bestand /etc/passwd als tekstbestand om te lezen. Voor elke regel in het bestand pakken we de verschillende elementen uit in enkele variabelen. We kijken dan of de shell niet gelijk is aan de twee eerdergenoemde shells. Als aan die voorwaarde is voldaan, tonen we de gebruiker, zijn volledige naam, zijn persoonlijke map en zijn shell.

Er is slechts één nieuwigheid in deze code: de functie strip. Die verwijdert witruimte en nieuwe regels aan het begin en het einde van een string. Dat hebben we hier nodig omdat de shell op het einde van de regel staat en er daar dus een teken voor een nieuwe regel komt. Zonder die aanroep van strip zou de vergelijking in de regel erna niet werken.

Naar een tekstbestand schrijven

Naar een tekstbestand schrijven, verloopt op een vergelijkbare manier als een tekstbestand lezen. We beginnen een with-blok waarin we het bestand openen en daarin schrijven we naar het bestand:

with open('bestand.txt', 'wt') as bestand:

bestand.write('Dit is de eerste regel.\n')

bestand.write('Dit is de tweede regel.\n')

bestand.write('Dit is de derde regel.\n')

Op het einde van elke regel moet je zelf een teken voor een nieuwe regel toevoegen: \n. Een andere manier om een regel naar een tekstbestand te schrijven, is met de functie print, die automatisch een nieuwe regel toevoegt:

print('Dit is de eerste regel.', file=bestand)

Merk op dat we het bestand openen met als tweede argument 'wt', waarmee we aangeven dat we naar het bestand willen schrijven. Op deze manier overschrijven we alle al bestaande inhoud van het bestand, dus let hiermee op!

Als je deze situatie wilt vermijden, kun je open aanroepen met de bestandsmodus 'xt'. Als het bestand nog niet bestaat, doet die hetzelfde als 'wt': je kunt naar het bestand schrijven. Maar als het bestand al bestaat, krijg je een foutmelding:

with open('bestand.txt', 'xt') as bestand:

print('Dit is een test.', file=bestand)

with open('bestand.txt', 'xt') as bestand:

print('Dit is nog een test.', file=bestand)

Traceback (most recent call last):

File "<pyshell>", line 1, in <module>

FileExistsError: [Errno 17] File exists: 'bestand.txt'

Een andere interessante bestandsmodus is 'at' (van ‘append’): hiermee voeg je aan het einde van een bestaand tekstbestand regels toe.

Exceptions afhandelen

In het voorbeeld hierboven zou je waarschijnlijk de foutmelding dat het bestand al bestaat op een nettere manier willen afhandelen. Wat we tot nu toe een foutmelding genoemd hebben, heet in Python een exception. Er bestaan verschillende types exceptions en in je Python-code kun je eenvoudig het optreden van exceptions afvangen. Dat gaat als volgt:

try:

with open('bestand.txt', 'xt') as bestand:

print('Dit is nog een test.', file=bestand)

except FileExistsError:

print('FOUT: Het bestand bestaat al.')

De code binnen het try-blok wordt uitgevoerd zoals normaal. Maar als er binnen dit blok een exception voorkomt, gaat het programma door naar het except-blok. Daarin hebben we aangegeven dat we alleen in de exceptions van het type FileExistsError geïnteresseerd zijn. In het geval er zo een voorkomt, tonen we onze eigen foutmelding. Daarna gaat het programma verder na het except-blok.

Als je meerdere types exceptions wilt afvangen, voeg je meerdere except-blokken toe met elk het andere type exception. Als je voor meerdere types exceptions dezelfde code wilt uitvoeren, dan zet je die exceptions tussen haakjes, zoals hier:

except (ZeroDivisionError, ValueError):

En als je op alle mogelijke exceptions hetzelfde wilt reageren, voeg je gewoon een except-blok zonder de naam van een exception toe, al is dat niet zo vaak zinvol.

Samenvatting

In deze les hebben we geleerd hoe we tekstbestanden kunnen inlezen en strings in onderdelen kunnen splitsen. Ook in de andere richting kun je nu met tekstbestanden werken: je kunt willekeurige tekst naar een bestand schrijven. En doordat je hebt geleerd hoe je exceptions kunt afvangen, hoeven de gebruikers van je programma geen cryptische foutmeldingen van Python meer te krijgen. Omdat je met deze kennis al complexere Python-programma’s kunt schrijven, leer je in de volgende les hoe je je programma meer kunt structureren in functies en modules.

Opdracht

Vraag de gebruiker om een regel zoals root:x:0:0:root:/root:/bin/bash voor gebruik in een wachtwoordbestand op te geven. Schrijf de belangrijkste elementen van de regel naar een afzonderlijke regel in een bestand, in de vorm: Gebruiker: root Naam: root Directory: /root Shell: /bin/bash Zorg dat je programma een heldere foutmelding geeft als de regel niet de correcte vorm voor een wachtwoordbestand heeft.

Uitwerking

regel = input('Voer een regel voor het wachtwoordbestand in: ') try: gebruiker, _, _, _, naam, directory, shell = regel.strip().split(':') with open('wachtwoordbestand', 'wt') as bestand: print('Gebruiker: {}'.format(gebruiker), file=bestand) print('Naam: {}'.format(naam), file=bestand) print('Directory: {}'.format(directory), file=bestand) print('Shell: {}'.format(shell), file=bestand) except ValueError: print('Voer de regel in de volgende vorm in:') print('gebruiker:x:0:0:naam:directory:shell') Dit is een rechtstreekse combinatie van alles wat je in deze les geleerd hebt. Let op: we hebben hier wel gebruiker, _, _, _, naam, directory, shell nodig en niet de kortere versie gebruiker, *_, naam, directory, shell. Met die laatste regel garanderen we immers niet dat de regel uit exact zeven elementen bestaat.

Cheatsheet

exception: een foutmelding in Python pad: de locatie van een bestand, met alle bovenliggende directorynamen erbij

▼ Volgende artikel
Review Sevento rookarme gourmet–raclette – Minder luchtjes, loeiharde grill
© Severin
Huis

Review Sevento rookarme gourmet–raclette – Minder luchtjes, loeiharde grill

Veel mensen houden van gourmetten, maar niemand vindt de geurtjes achteraf in huis fijn. Severin komt nu met de Sevento rookarme gourmet–raclette, een set voor 8 personen met geurafzuiging. ID.nl ging een avondje gourmetten en snuffelde daarna door de eetkamer op zoek naar luchtjes.

Goed
Conclusie

De Sevento rookarme gourmet–raclette doet precies wat hij belooft op het vlak van geurreductie: de downdraft-afzuiging buigt rook zichtbaar naar het midden en na afloop ruikt de kamer merkbaar minder naar gegrild vlees. De grillplaat is zeer krachtig en bakt vlees en groente snel gaar, maar voor een lange, rustige gourmetavond is de hoogste stand te fel en de middelste stand pakt niet altijd direct op. De pannetjes onder de plaat leveren in Nederlandse gourmet-praktijk teleurstellende warmte; ze zijn vooral bedoeld voor raclette (kaas smelten) en minder voor eitjes of pannenkoekjes. De set is eenvoudig te bedienen, het reinigen is overzichtelijk en het filter is goed bereikbaar, al zijn de tekeningen in de handleiding bij eerste gebruik niet voor iedereen even duidelijk. Per saldo is dit een sterke keuze voor wie vooral wil grillen met minder baklucht en eventueel van raclette houdt; wie graag met pannetjes kookt of urenlang op een lagere, gelijkmatige temperatuur tafelt, kan beter even verder kijken.

Plus- en minpunten
  • Merkbaar minder baklucht door downdraft-afzuiging
  • Zeer krachtige grillplaat
  • Eenvoudige bediening met duidelijke standen
  • Makkelijk schoon te maken; PFAS-vrij ILAG-oppervlak
  • Reservefilters meegeleverd
  • Pannetjes leveren weinig warmte; vooral bedoeld voor raclettekaas
  • Middelste stand pakt traag op; hoge stand te fel voor lang tafelen
  • Ventilator goed hoorbaar, vooral op de hoogste stand
  • Handleiding (tekeningen) onduidelijk bij eerste gebruik
  • Hoge adviesprijs

Op feestelijke momenten komen veel families en vrienden bij elkaar voor een avondje gourmetten. Mensen die er niet van houden, hebben vaak issues met de zware baklucht die blijft hangen na het eten. Je ruikt het de dag erna nog. Severin komt nu met een gourmetstel met zogeheten downdraft-technologie waarbij de geurtjes grotendeels worden afgezogen via een soort ventilator in het midden.

Lees ook: Zo krijg je die gourmetlucht snel uit je huis

Wat is dit voor apparaat?

De Sevento rookarme gourmet–raclette van Severin ziet er op het eerste gezicht uit als een regulier gourmetstel, met een grillplaat bovenop en pannetjes om bijvoorbeeld een eitje te bakken. Wie beter kijkt, ziet dat er midden op de grillplaat een soort dakje zit, dat je kunt optillen, waarna de filterunit wordt onthuld. Daarmee worden de kookluchtjes en de rook afgezogen, en via een koolstoffilter naar de zijkanten geleid waar er door vier 'schoorsteentjes' schone lucht wordt uitgeblazen. Dan zie je ook dat er onder de grillplaat niet één, maar twee verdiepingen zitten. Een gedeelte onder het warmte-element om je pannetjes neer te zetten om eten te bereiden. En eronder nog een laag waar je ongebruikte pannetjes bewaart, een soort parkeerdek. Slim!

©Severin

Wat zit er in de doos

Uit de doos komt niet alleen het gourmetstel zelf, maar ook acht pannetjes, acht spatels en onderdelen voor de afzuigunit, namelijk drie koolstoffilters en een afdek-ring. Dat leidde tot wat onduidelijkheid, want we dachten alles nog in elkaar te moeten zetten en zaten erg te pielen met wat er precies waarin moest. De handleiding bestaat uit tekeningen die voor de beginnende gebruiker onduidelijk zijn op dit vlak. Pas helemaal aan het einde bij de schoonmaakinstructies zagen we een duidelijker afbeelding. Daaruit bleek dat de unit al klaar was voor gebruik en dat de extra's reserve-onderdelen zijn. Het geheel is makkelijk neer te zetten en na wat simpele reiniging klaar voor gebruik.

Bediening en instellingen

Bediening is eveneens simpel. Machine aanzetten via het led-display, ongeveer tien minuten wachten tot het geheel voorverwarmd is, en dan grillen maar! Via het display is de grill op drie standen te zetten, en de afzuigventilator op twee standen. Dat wijst zichzelf.

©Severin

's Werelds snelste gourmetsessie

Nu over naar het gebruik. De korte versie: zo snel hebben we nog nooit gegourmet. En ben je erg gesteld op een pannetje met een gebakken eitje erin: dat wordt hem niet.

Maar nu de lange versie. De set is getest met auteur en echtgenoot op een doordeweekse avond, met een set gourmetvlees van de supermarkt, wat gesneden uitjes en paprika, wat voorgekookte schijfjes aardappel en losgeklopte eitjes. Kortom, een simpele 'Hollandse' gourmetavond. Voorverwarmen ging prima. De grill staat standaard op de hoogste stand, die hebben we dan ook aangehouden. Aanvankelijk dan. Severin meldt dat de hoogste stand 230-240 graden wordt. Dat kan goed kloppen, want het gourmetvlees was letterlijk binnen maximaal 2 minuten gaar. De gehele tweepersoonsschotel was binnen 45 minuten op.

©Saskia van Weert

De lagere stand instellen om wat langer te tafelen, had een bijzonder effect. Namelijk dat de warmte er even helemaal uit ging en dat het vlees en de groenten pas na enige tijd weer gingen sissen. De hoge stand leek wel te hard voor een avond gourmetten, en met de middelste stand gebeurde er even niets. De laagste stand was al helemaal niet aan de orde.

Geen vork of mes in je pannetje!

Voorkom krassen en gebruik een fijne spatel!

Pannetjes en raclette-gebruik

Dan de pannetjes. Die zijn klein, met een schuine rand. Er pasten slechts twee kleine plakjes aardappel tegelijk in. Dat leek ons al wat onpraktisch, maar nog onhandiger was dat er amper warmte bij kwam onder de grill. Na een kwartier was de aardappel nog lauw en was het eerste eitje in het andere pannetje nog niet eens gestold. Ook de paprika in het derde pannetje wilden maar niet garen. Nadat al het vlees op was, ging alles dan maar op de plaat, waar het (uiteraard) in een wip wel klaar was.

©Saskia van Weert

Na het eten bleef de auteur met vraagtekens zitten. Was er iets mis met het toestel? Een vrij uitvoerige zoektocht op YouTube gaf het antwoord in de vorm van een review door een Franse mevrouw, waar het toestel vermoedelijk langer op de markt is. De onderverdieping met de pannetjes is helemaal niet bedoeld om ei en pannenkoekjes te bakken. Het is voor raclette, ofwel het smelten van speciaal daarvoor bedoelde plakjes kaas, om de gesmolten kaas daarna via de schuine rand over bijvoorbeeld een gepofte aardappel te verdelen. Die gewoonte kennen we in Nederland eigenlijk niet. En dat is best een aandachtspunt voor wie interesse heeft in dit model. Zeker gezien de adviesprijs van 199 euro haal je niet alles uit het apparaat als je geen raclette eet, en echt gek bent op van alles bakken in de pannetjes.

De geurarme werking

Tijdens het eten staat de ventilator van de machine aan. Die hoor je ook, zeker in de hogere stand. Hij werkt effectief: je ziet de rook naar het midden van de plaat afbuigen. Geurvrij wordt het uiteraard niet – dat claimt Severin ook niet. Maar het rook wel aanmerkelijk minder sterk naar gegrild vlees na afloop van de maaltijd. Wat dit betreft maakt het apparaat de belofte wel waar.

©Saskia van Weert

Schoonmaken

De grillplaat heeft een krasvrij, PFAS-vrij zogeheten ILAG-oppervlak. Het materiaal geleidt warmte heel erg goed en is makkelijk onder de kraan schoon te maken. De pannetjes kunnen in de vaatwasser, de grillplaat zelf trouwens ook – maar deze is erg groot, dus handmatig afnemen is meestal waarschijnlijk praktischer. Na gebruik en afkoelen moet je de afzuigunit uit elkaar halen en het filter uitspoelen met een sopje, dat is betrekkelijk weinig werk.

©Saskia vanWeert-Berghout

Positionering onduidelijk

Als je het heel stellig wilt zeggen, is dit een apparaat met twee uitersten. Een heel krachtige grillplaat, en amper warmte bij de pannetjes. Daarmee is het een grill met een kleinere doelgroep dan je zou verwachten van 'gourmetten zonder luchtjes'. Ben je verzot op van alles grillen op een plaat, en geef je minder om het getut met pannetjes, dan kun je echt goed los met de enorm hete plaat. Houd je van een hele avond gezellig tafelen, dan is deze machine waarschijnlijk te krachtig op de hoogste stand, en niet sterk genoeg op de lagere standen. Plus dat je eigenlijk niks kunt maken in de pannetjes.

Ben je tot slot een lekkerbek die dol is op de combinatie van grillen en raclette, dan heb je het apparaat van je dromen gevonden.

Als de temperatuurbeheersing wat meer zou worden gefinetuned, en er met de pannetjes wat meer mogelijk zou zijn, gaat deze grill een gouden toekomst tegemoet. Maar tot die tijd is het een aanwinst voor een kleine groep.

©Saskia van Weert

Conclusie

De Sevento rookarme gourmet–raclette doet precies wat hij belooft op het vlak van geurreductie: de downdraft-afzuiging buigt rook zichtbaar naar het midden en na afloop ruikt de kamer merkbaar minder naar gegrild vlees. De grillplaat is zeer krachtig en bakt vlees en groente snel gaar, maar voor een lange, rustige gourmetavond is de hoogste stand te fel en de middelste stand pakt niet altijd direct op. De pannetjes onder de plaat leveren in Nederlandse gourmet-praktijk teleurstellende warmte; ze zijn vooral bedoeld voor raclette (kaas smelten) en minder voor eitjes of pannenkoekjes. De set is eenvoudig te bedienen, het reinigen is overzichtelijk en het filter is goed bereikbaar, al zijn de tekeningen in de handleiding bij eerste gebruik niet voor iedereen even duidelijk. Per saldo is dit een sterke keuze voor wie vooral wil grillen met minder baklucht en eventueel van raclette houdt; wie graag met pannetjes kookt of urenlang op een lagere, gelijkmatige temperatuur tafelt, kan beter even verder kijken.


▼ Volgende artikel
Je e-mail back-uppen? Dit zijn de beste manieren
© Jakub Krechowicz - stock.adobe.c
Huis

Je e-mail back-uppen? Dit zijn de beste manieren

Wie bang is om belangrijke e-mails kwijt te raken, slaat gewoon een kopie van de berichten op. Er bestaan hiervoor diverse mogelijkheden. Back-up je volledige digitale postvak óf bewaar alleen geselecteerde e-mails. Verstandig, want een technische storing kan natuurlijk altijd een keer gebeuren. Bovendien is een back-up handig wanneer je een e-mailaccount wilt opzeggen, zoals providermail.

Dit gaan we doen

We laten zien op welke manieren je van e-mails een (extra) kopie kunt opslaan. Lees hoe dat werkt bij verschillende bekende e-mailclients en webmaildiensten.

Lees ook: 10 e-mailhacks: van overvolle inbox naar opgeruimd staat netjes

Gmail-bericht

Gmail bewaart de volledige inhoud van het postvak op een online server. Handig, want via internet heb je overal ter wereld toegang tot de berichten. Maar wat als de webverbinding plotsklaps wegvalt, bijvoorbeeld na een storing of cyberaanval? Bij dergelijke doemscenario's is het postvak van de webmaildienst normaal gesproken niet bereikbaar. Neem daarom voorzorgsmaatregelen!

Waarschijnlijk ontvang je regelmatig belangrijke gegevens via e-mail. Denk aan een factuur, verzekeringspolis of concertkaarten. Je bewaart dan een kopie van het bericht op de computer. Ga naar https://mail.google.com en log zo nodig in met je Google-account. Open de betreffende e-mail. Klik rechtsboven op het pictogram met de drie puntjes en kies Bericht downloaden. Je bewaart de e-mail inclusief alle bijlagen als eml-bestand op de pc. Verschillende e-mailprogramma's ondersteunen dit formaat, zoals Thunderbird en Outlook.

Je kunt een Gmail-bericht ook als pdf-bestand opslaan. Bedenk wel dat je daarmee geen bijlage(n) bewaart, maar die kun je wel apart opslaan. Open in Gmail een bericht en klik rechtsboven op de drie puntjes. Via Afdrukken verschijnt er een nieuw venster. Klik bij Bestemming of Printer op het uitrolmenu en kies Opslaan als pdf / Opslaan. Je bladert nu naar de opslagmap, waarna je bevestigt met Opslaan.

Download vanuit Gmail een belangrijk bericht naar je computer.

Gmail-postvak

Naast losse berichten back-up je net zo makkelijk het volledige Gmail-postvak. Gebruik hiervoor de dienst Google Takeout. Surf naar https://takeout.google.com en log indien nodig in met jouw Google-account. Je klikt eerst op Selectie van alle items ongedaan maken. Scrol naar beneden totdat je het onderdeel E-mail tegenkomt. Zet daarachter een vinkje.

Je bepaalt zelf welke mappen je bewaart. Via Alle Mail-gegevens inbegrepen komt de mappenstructuur van jouw Gmail-postvak tevoorschijn. Standaard staan alle berichten geselecteerd. Wil je dat niet? Wis dan het vinkje voor Inclusief alle berichten in E-mail. Je kunt nu zelf de beoogde mappen aanwijzen. Maak een keuze en bevestig met OK. Je klikt daarna onderaan het scherm op Volgende stap.

Je kunt een kopie van het postvak op verschillende manieren opslaan. Standaard is de optie Downloadlink sturen via e-mail geselecteerd. Dat is prima, want verder ondersteunt Google Takeout alleen cloudopslag. Beslis onder Frequentie of je het Gmail-postvak eenmaal of iedere twee maanden wilt exporteren. Laatstgenoemde optie geldt voor een periode van een jaar. Kies verder bij Bestandsgrootte de omvang, met een maximum van vijftig gigabyte. Klik als laatste op Export maken. Google Takeout giet een zogeheten mbox-bestand in een ziparchief. Diverse e-mailprogramma's ondersteunen dit bestandsformaat.

Zeker bij een bomvolle Gmail-inbox kost de back-uptaak doorgaans veel tijd.

Offline-modus Gmail

Gmail heeft ook een offline-modus. Daarmee lees je e-mails zonder internetverbinding. Een voorwaarde is dat je de browser Chrome op een pc of laptop gebruikt. Open Gmail en klik rechtsboven op het tandwielpictogram. Je navigeert daarna naar Alle instellingen bekijken / Offline, waarna je een vinkje zet voor Offline mail aanzetten. Bepaal bij het onderdeel Synchronisatie-instellingen hoelang je de berichten wilt bewaren. Je kiest tussen 7, 30 of 90 dagen. Check ook even of Bijlagen downloaden is aangevinkt. Markeer daarna de optie Offline gegevens op mijn computer bewaren en kies Wijzigingen opslaan / OK.

Gebruik de browser Chrome om de offline modus van Gmail te activeren.

Outlook.com

Net als Gmail heeft Outlook.com verschillende mogelijkheden om losse e-mails op te slaan. Ga naar https://outlook.live.com en log zo nodig in met je accountgegevens. Open daarna een e-mail die je wilt bewaren. Klik rechtsboven het bericht op het pictogram met de drie puntjes en kies Downloaden. Je hebt twee mogelijkheden, namelijk Downloaden als EML of Downloaden als MSG. Verschillende e-mailprogramma's kunnen met het open eml-formaat overweg, terwijl de msg-indeling voornamelijk is toegespitst op Outlook. Maak een keuze en bewaar het bestand op de computer.

Als alternatief giet je een e-mail eenvoudig in een pdf'je, maar je bewaart dan geen bijlage(n). Die sla je desgewenst apart op. Klik wederom bovenaan op de drie puntjes en kies Afdrukken. Selecteer bij Bestemming of Printer de optie Opslaan als pdf en bevestig met Opslaan. Nadat je de opslaglocatie hebt gekozen, klik je nog een keer op Opslaan. Helaas heeft Outlook.com geen functie om het hele postvak te back-uppen.

Sla een Outlook.com-bericht als eml-, msg- óf pdf-bestand op.

Providermail

Bij veel internetproviders kun je ook één of meerdere e-mailadressen aanmaken. Onder andere Ziggo en KPN bieden deze dienst. Misschien wil je jouw providermail wel back-uppen. Dat is nuttig wanneer je bijvoorbeeld naar een andere internetprovider overstapt. In dat geval wordt je oude e-mailaccount namelijk opgeheven.

De exacte back-upopties verschillen per internetprovider. Bekijk in de webmailomgeving van de betreffende aanbieder welke mogelijkheden er zijn. Zo selecteer je binnen de webmaildienst van Ziggo bijvoorbeeld eerst alle belangrijke e-mails. Klik vervolgens bovenaan op het pictogram met de drie horizontale streepjes en kies Opslaan als bestand. Je bewaart daarmee een ziparchief op de computer. Zodra je dat uitpakt, vind je alle e-mails terug als eml-bestanden. KPN Webmail bevat een vergelijkbare functie.

Zie je binnen de webmaildienst van je provider geen optie om e-mails te downloaden? Kies bij het bewuste bericht dan voor Afdrukken en bewaar het bericht als pdf-bestand.

Sla vanuit Ziggo Mail een belangrijk bericht op.

IMAP-protocol

Nagenoeg alle e-maildiensten ondersteunen het IMAP-protocol. Gunstig, want bij gebruik van de juiste instellingen sla je daarmee de e-mails automatisch lokaal op. Een e-mailclient (programma of app) plukt met behulp van het IMAP-protocol de berichten van de server. De e-mails staan dan dus op twee plekken, namelijk op de online server en in het e-mailprogramma van de computer. Dankzij IMAP is het zelfs mogelijk om de berichten van een e-mailaccount met meerdere apparaten te synchroniseren. Denk aan een pc, laptop, tablet en smartphone.

Feitelijk creëer je met dit slimme protocol dus een lokale back-up. Wel is het een voorwaarde dat de e-mailclient volledige kopieën van e-mails inclusief bijlagen ophaalt. In veel programma's kun je dat instellen, zoals Thunderbird en Outlook.

Gebruik je providermail? Probeer dan eerst de juiste servergegevens te achterhalen en ga daarna verder met de volgende tip. Je hebt de naam van de inkomende IMAP- en uitgaande SMTP-server nodig. Noteer ook de bijbehorende poortnummers.

Internetproviders vermelden meestal op hun website de benodigde servergegevens voor IMAP.

Thunderbird

Thunderbird is een gebruiksvriendelijke e-mailclient. Er zijn versies voor Windows, macOS, Linux en Android beschikbaar. Surf naar www.thunderbird.net/nl/ om dit gratis programma te downloaden. Voer de installatie met de standaardinstellingen uit en start de e-mailclient op.

Je vult nu de gegevens van jouw e-mailaccount in. Typ je volledige naam, het e-mailadres en het wachtwoord. Klik nu op Doorgaan. Met een beetje mazzel kent Thunderbird de servergegevens van het e-mailaccount al, zoals bij Gmail en Outlook.com. Ook van veel internetproviders verschijnen vanzelf correcte gegevens. Is dat niet het geval? Typ dan handmatig de naam van de juiste IMAP- en SMTP-server. Check hierbij ook even of de poortnummers goed staan ingevuld. Bevestig daarna met Gereed/Voltooien. Bepaal tot slot of je Thunderbird als standaard mailprogramma wilt instellen. Je ziet aan de linkerkant de mappen van het e-mailaccount.

Thunderbird verschijnen automatisch de correcte servergegevens van een Ziggo Mail-account.

Thunderbird-opties

Controleer in Thunderbird of de e-mailclient volledige kopieën van de e-mailserver downloadt. Klik in de linkerkolom met de rechtermuisknop op het e-mailadres en kies Instellingen/Synchronisatie & opslag. Check onder Schijfruimte of de opties Alle berichten lokaal synchroniseren, ongeacht de leeftijd en Geen berichten verwijderen zijn gemarkeerd.

Je maakt van een los e-mailbericht optioneel een extra kopie. Dubbelklik op een onderwerppregel om een e-mail te openen. Navigeer vervolgens naar Meer / Opslaan als. Zodra je de opslagmap hebt geopend, klik je op Opslaan. Met de standaardinstellingen bewaart de e-mailclient een eml-bestand. Heb je liever een pdf? Ga dan naar Meer / Afdrukken en selecteer onder Uitvoerapparaat de optie Opslaan als PDF. Blader via Opslaan naar de gewenste map en bevestig nogmaals met Opslaan.

Stel in dat Thunderbird alle e-mails permanent opslaat.

Exporteren

Thunderbird bevat een optie om het volledige gebruikersprofiel naar een map te exporteren. Die kun je bijvoorbeeld op een externe opslagdrager of andere computer opslaan. In dit gebruikersprofiel staan alle toegevoegde e-mailaccounts, berichten, adresboeken en instellingen.

Klik rechtsboven op het pictogram met de drie horizontale streepjes en kies Extra / Exporteren. Er opent een nieuw tabblad. Bewaar via Exporteren een zip-bestand in de gewenste map en bevestig dit met Opslaan / Voltooien.

Is het gebruikersprofiel groter dan twee gigabyte? Dan kun je de boel niet exporteren. Kies dan Profielmap openen en kopieer de inhoud handmatig naar een zelfgemaakte map.

Bij onverhoopte problemen zet je de back-up in Thunderbird weer terug. Klik hiervoor op het pictogram met de drie streepjes en ga naar Extra / Importeren. Markeer Importeren uit een andere Thunderbird-installatie en klik op Doorgaan. Afhankelijk van de gemaakte back-up selecteer je nu een profielmap of zip-bestand. Maak een keuze en vink in de volgende stap alle onderdelen aan die je wilt herstellen. Klik als laatste op Doorgaan / Import starten.

Het back-uppen van een compleet gebruikersprofiel is dankzij de snelle exporteerfunctie zo gepiept.

ImportExportTools

Er zijn voor Thunderbird een heleboel zogenoemde add-ons beschikbaar. Dat zijn extensies die extra functies aan de e-mailclient toevoegen. Voor back-updoeleinden is ImportExportTools NG een aanrader. Navigeer rechtsboven naar het pictogram met de drie horizontale streepjes en klik op Add-ons en thema's. Zodra je met de zoekfunctie ImportExportTools NG hebt opgespoord, bevestig je met Toevoegen aan Thunderbird / Toevoegen / OK.

Klik in de linkerkolom met de rechtermuisknop op een map en verken bij ImportExportTools NG de mogelijkheden. Als je de volledige e-mailmap wilt opslaan, kies je Map exporteren (mbox) / Als mbox-bestand / OK. In het contextmenu van deze extensie vind je ook de optie Exporteer alle berichten in map. Kies vervolgens tussen de bestandsformaten eml, pdf, html, txt en csv. Bij elke keuze wijs je op de computer of externe datadrager de beoogde opslaglocatie aan.

Nuttig is ook de optie Zoek en exporteer berichten. Back-up daarmee op basis van één of meerdere trefwoorden specifieke e-mails. Geef bijvoorbeeld aan dat dit trefwoord in het onderwerp of de berichttekst moet voorkomen. Je kunt ook alle e-mails van een contactpersoon selecteren. Heb je de juiste criteria opgesteld? Klik dan op Zoek. Selecteer achter Indeling het uitvoerformaat, bijvoorbeeld EML of mbox. Kies daarna Exporteren.

Vind dankzij de slimme zoekfunctie van ImportExportTools NG vlot belangrijke e-mails.

Thunderbird op mobiel

Je kunt Thunderbird ook op een smartphone of tablet installeren. Download de gelijknamige app uit de Play Store van een Android-toestel. Voor iPhones en iPads is er helaas geen ondersteuning. Vanaf een computer zet je heel makkelijk een gebruikersprofiel met accountgegevens en e-mails over. Klik linksonder in het programma op het tandwiel om de instellingen te openen en kies Exporteren voor Mobiel. Selecteer één of meerdere accounts die je wilt overzetten. Je vinkt ook Alle accountwachtwoorden opnemen aan. Wanneer je klikt op Exporteren, verschijnt er een QR-code.

Open nu de Thunderbird-app op het Android-toestel. Nieuwe gebruikers tikken in het beginscherm op Importinstellingen. Geef de app toegang tot de camera en film de QR-code. Je e-mailaccount inclusief alle berichten komt vanzelf tevoorschijn.

Met een QR-code importeer je binnen mum van een e-mailaccount op een telefoon.

Outlook Classic

Microsoft slingerde de afgelopen jaren verschillende varianten van Outlook de wereld in. Lastig, want de exacte instructies voor de beschikbare back-upopties hangen deels af van de gebruikte versie. Veel mensen gebruiken nog een 'oude' Outlook-editie. Ook Microsoft 365-abonnees hebben toegang tot deze versie van de bekende e-mailclient. Dit programma heet ook wel Outlook Classic.

Heb je via het IMAP-protocol een e-mailaccount aan het mailprogramma toegevoegd? Bepaal dan dat Outlook de volledige berichteninhoud lokaal bewaart. Klik achtereenvolgens op Bestand / Accountinstellingen / Accountnaam en synchronisatie-instellingen. Beweeg de schuifregelaar achter Email offline houden gedurende naar Alles. Sluit het venster met Volgende / Gereed.

Wil je een extra back-up van een mail maken? Selecteer het bericht en ga naar Bestand / Opslaan als. Kies in het uitrolmenu achter Opslaan als het gewenste bestandsformaat. De msg-indeling ligt voor de hand. Bevestig met Opslaan.

Tot slot bevat de klassieke versie van Outlook ook een functie om een volledig e-mailaccount te back-uppen. Navigeer naar Bestand / Openen / Importeren/Exporteren en selecteer in de wizard de optie Naar een bestand exporteren. Kies in de volgende stap Outlook-gegevensbestand (.pst) en klik tweemaal op Volgende. Je selecteert via Bladeren de opslagmap, waarna je bevestigt met Voltooien.

Back-up in Outlook Classic de volledige inhoud van een e-mailaccount.

Outlook (new)

Sinds begin 2025 is Windows Mail niet meer binnen Windows beschikbaar. Gebruikers kunnen nu de Outlook-app gebruiken. Dit programma droeg eerder de naam Outlook (new). Vergeleken met zijn klassieke tegenhanger zijn er andere back-upmogelijkheden.

Beslis allereerst hoelang je e-mails van een e-mailaccount lokaal wilt opslaan. Klik rechtsboven op het tandwiel en ga naar Algemeen / Offline. Je zet zo nodig het schuifje aan voor Offline e-mail, agenda en personen inschakelen. Kies onder Dagen e-mail om op te slaan voor 7, 30, 90 of 180 dagen. Kies Opslaan en sluit het instellingenvenster.

Jammer genoeg kun je berichten niet langer bewaren, waardoor deze optie niet geldt als een volwaardige back-up. Maak daarom handmatig kopieën van de belangrijkste e-mails. Klik met de rechtermuisknop op een bericht en kies Opslaan als / Opslaan als EML of Opslaan als MSG. Blader naar de opslaglocatie en sluit het venster met Opslaan.

Ten slotte heeft de vernieuwde Outlook-versie ook een exporteerfunctie, al is die erg beperkt. Het werkt namelijk alleen voor Outlook.com-postvakken. Toch proberen? Navigeer naar Instellingen / Algemeen / Privacy en gegevens en klik op Postvak exporteren. Deze back-uptaak duurt maximaal vier(!) dagen. Je ontvangt na afloop een e-mail met een downloadlink.

De exporteerfunctie van de vernieuwde Outlook vereist wel wat geduld.

Lees ook: Nieuwe pc? Zo neem je al je instellingen mee

E-mail gebackupt?

Bewaar ook een kopie op een usb-stick