Hoofdstuk 2
Waar Python sterk in is
Laat Python herhalend werk doen
Heb je weleens een saai klusje afgerond en gedacht: “En volgende week mag ik dit allemaal weer doen”?
Misschien neem je elke vrijdag dezelfde cijfers over in een rapport. Of hernoem je na elk evenement foto’s, controleer je een stapel formulieren op hetzelfde ontbrekende veld of kijk je na elke wijziging of een website nog werkt.
Dat gevoel is voor mij het beste signaal dat Python iets kan opleveren. Een computer past een duidelijke regel tienduizend keer toe zonder zich te vervelen of slordig te worden. Dat betekent niet dat je elke herhaalde taak moet automatiseren. Een groot deel van deze les gaat over het onderscheid daartussen.
Iemand moet nog steeds de regel bepalen
Automatisering verplaatst het werk, niet het oordeel. Python bekijkt je vrijdag niet om zelf uit te zoeken wat je bedoelt. Voordat een programma iets kan hernoemen, moet iemand bepalen wat de nieuwe namen worden.
Stel dat je een map zoals deze hebt:
| Voor | Na |
|---|---|
IMG_8041.jpg | 2026-08-30_workshop_01.jpg |
IMG_8042.jpg | 2026-08-30_workshop_02.jpg |
IMG_8043.jpg | 2026-08-30_workshop_03.jpg |
Python past dat patroon toe op drie bestanden of op dertigduizend. Maar iemand moest de datum, de naam van het evenement, de volgorde van de foto’s en hun bestemming opgeven. Iemand moest het programma ook toestemming geven om de bestanden überhaupt te veranderen.
Ik zou eerst een voorbeeld van het resultaat willen zien, voordat het iets aanpast. Een computer herhaalt een juiste regel heel snel. Een fout herhaalt hij precies even snel.
Wat Python daarvoor biedt
De standaardbibliotheek kan op zichzelf al verrassend veel: werken met bestanden en mappen, datums, tekst en CSV-bestanden, andere programma’s uitvoeren en controleren of je eigen code nog werkt. Een CSV-bestand is een tabel met rijen en kolommen in platte tekst. Spreadsheets bieden dat formaat aan als je iets wilt dat allerlei hulpmiddelen kunnen openen.
Waar de standaardbibliotheek ophoudt, heeft het ecosysteem meestal de rest: spreadsheets met behoud van opmaak, afbeeldingen, documenten, bedrijfssystemen en websites.
De taal geeft je dus een duidelijke manier om de regel op te schrijven. De hulpmiddelen geven je toegang tot het echte materiaal. Die combinatie maakt dit de eerste toepassing waar ik naar kijk.
Eén keuze stap voor stap
Stel dat het rapport voor vrijdag de kandidaat is. Dit zou ik willen weten voordat ik één regel code schrijf.
Komt het werk echt steeds terug? Twee minuten per jaar zijn geen programma waard. Twee uur elke vrijdag zijn heel wat programmeerwerk waard.
Kun je de regel hardop uitleggen? “Zet elk rapport in de map van de bijbehorende maand” werkt, zolang elk rapport een betrouwbare datum bevat. “Berg het op waar het logisch is” werkt niet, want die logica zit in je hoofd. Als je de regel niet aan een nieuwe collega kunt uitleggen, kun je hem ook niet aan Python uitleggen.
Kan het programma bij de informatie? Die kan in bestanden staan, in een e-mailaccount, op een website of in een systeem van iemand anders. Dat je technisch ergens bij kunt, betekent nog niet dat het ook mag.
Kun je de eerste uitvoering controleren? Werk op een kopie. Toon een voorbeeld van het resultaat. Vergelijk het met een uitkomst die je al vertrouwt. Doe dat elke keer dat de regel verandert, niet alleen de eerste keer.
Wat gebeurt er als er iets niet klopt? Een ontbrekende datum, een hernoemde kolom, een onverwachte bestandsnaam. Een duidelijke foutmelding is dan een goede manier om te stoppen. Duur wordt het wanneer een programma doorgaat en een jaar lang elke vrijdag ongemerkt een verkeerd rapport produceert.
Twee taken met een andere uitkomst
Controleren of elk formulier een datum heeft. Een goede kandidaat. De regel is volkomen eenduidig: de datum staat er of niet. Een mens beslist nog steeds wat er moet gebeuren met formulieren waarvoor dat niet zo is.
Beslissen of de klacht van een klant terecht is. Daarvoor niet. Dat vraagt om context, een oordeel en iemand die verantwoordelijkheid wil dragen voor hoe een persoon is behandeld. Een programma kan de relevante voorgeschiedenis verzamelen en aanleveren. Het hoort niet het oordeel te vellen.
Het eerlijke oordeel
Python is goed geschikt voor herhaaldelijk werk met informatie wanneer de regels duidelijk zijn, de binnenkomende gegevens betrouwbaar zijn en fouten zichtbaar worden op een plek waar iemand ze ziet.
Het is bruikbaar met afwegingen wanneer het een veilig deel automatiseert en de echte beslissing aan een mens laat. En het is meestal niet de eerste keuze om een hele taak te automatiseren die afhangt van een onduidelijk oordeel, voortdurend verandert, toegang vereist die je niet moet weggeven of iemand schaadt als de regel verkeerd is.
Automatisering kan veel saai werk uit je week halen. Ze kan het begrip van dat werk niet overnemen, en is het gevaarlijkst als iemand hoopt van wel.
Tot nu toe deed één programma één taak. Echte producten verdelen het werk over verschillende onderdelen, en Python zit niet in allemaal. Hierna volgen we één klik door een website om te ontdekken welk deel bij Python hoort.
Verder lezen (Engels)
De officiële gids voor de standaardbibliotheek laat zien welke hulpmiddelen met Python worden meegeleverd. Python.org verzamelt voorbeelden van Python-toepassingen. Beide zijn optioneel.