Learning Center
Programmeertaal Python

Command-line opties en argumenten verwerking met argparse in Python

25 nov 2025
Hostman Team
Hostman Team

Command-line interfaces (CLI’s) behoren tot de snelste en meest doeltreffende manieren om met software te communiceren. Ze stellen je in staat om opdrachten direct uit te voeren, wat leidt tot snellere uitvoering en uitgebreidere functionaliteit. Ontwikkelaars bouwen vaak CLI’s in Python voor diverse applicaties, tools en automatiseringsscripts, zodat gebruikersinvoer dynamisch kan worden verwerkt. Daarbij komt het Python-module argparse goed van pas.

Het argparse-module vereenvoudigt het verwerken van command-line-invoer en stelt ontwikkelaars in staat interactieve en gebruiksvriendelijke tools te bouwen. Als onderdeel van de standaardbibliotheek kunnen programmeurs hiermee invoer definiëren, verwerken en valideren zonder ingewikkelde logica.

In dit artikel bespreken we de belangrijkste concepten, nuttige voorbeelden en geavanceerde functies van het argparse-module, zodat je meteen kunt beginnen met het bouwen van betrouwbare command-line tools.

Hoe argparse in Python te gebruiken voor CLI’s
Link kopiëren

Stap 1: Module importeren
Link kopiëren

Importeer het module in je Python-script:

import argparse

Dit maakt het mogelijk om argumenten vanuit de command line te verwerken.

Stap 2: Een ArgumentParser-object aanmaken
Link kopiëren

De klasse ArgumentParser is de basis van de argparse-API. Maak een instantie aan:

parser = argparse.ArgumentParser(description="A Hostman tutorial on Python argparse.")

Hier:

  • description beschrijft wat het programma doet en wordt weergegeven wanneer iemand --help uitvoert.

Stap 3: Inputs en opties toevoegen
Link kopiëren

Definieer de parameters die je programma accepteert via add_argument():

parser.add_argument('filename', type=str, help="Name of the file to process")

parser.add_argument('--verbose', action='store_true', help="Enable verbose mode")

Toelichting:

  • filename is verplicht.

  • --verbose is optioneel en schakelt de verbose-modus in.

Stap 4: Gebruikersinvoer verwerken
Link kopiëren

Start de verwerkingsfase met:

args = parser.parse_args()

De waarden worden opgeslagen als attributen van het args-object.

Stap 5: Verwerkte data gebruiken
Link kopiëren

Voorbeeld:

print(f"File to process: {args.filename}")

if args.verbose:

    print("Verbose mode enabled")

else:

    print("Verbose mode disabled")

Voorbeelden van CLI-gebruik
Link kopiëren

Zonder verbose-modus
Link kopiëren

python3 file.py example.txt

Met verbose-modus
Link kopiëren

python3 file.py example.txt --verbose

Help weergeven
Link kopiëren

python3 file.py --help

Veelgebruikte argparse-voorbeelden
Link kopiëren

Voorbeeld 1: Standaardwaarden toevoegen
Link kopiëren

Optionele parameters kunnen een standaardwaarde krijgen. In dit voorbeeld wordt een standaard-timeout van 30 seconden ingesteld:

import argparse

parser = argparse.ArgumentParser(description="Demonstrating default argument values.")

parser.add_argument('--timeout', type=int, default=30, help="Timeout in seconds (default: 30)")

args = parser.parse_args()

print(f"Timeout value: {args.timeout} seconds")

Uitleg

  • argparse importeren

  • Parser initialiseren

  • --timeout toevoegen met type=int en default=30

  • Waarden parsen met parse_args()

Case 1: standaardwaarde

python file.py

Case 2: aangepaste waarde

python file.py --timeout 60

Voorbeeld 2: Gebruik van choices
Link kopiëren

Met choices kun je een argument beperken tot een vooraf vastgestelde set geldige waarden:

parser.add_argument('--mode', choices=['basic', 'advanced'], help="Choose the mode of operation")

Case 1: geldig

python3 file.py --mode basic

Case 2: geen invoer

python3 file.py

Case 3: ongeldig

python3 file.py --mode intermediate

Voorbeeld 3: Meerdere waarden verwerken
Link kopiëren

Gebruik nargs='+' om meerdere waarden te accepteren:

parser.add_argument('--numbers', nargs='+', type=int, help="List of numbers to process")

Case 1: meerdere waarden

python3 file.py --numbers 10 20 30

Case 2: één waarde

python3 file.py --numbers 5

Case 3: geen invoer

python3 file.py

Case 4: ongeldig

python3 file.py --numbers 10 abc 20

Voorbeeld 4: Vereiste optionele argumenten
Link kopiëren

Optionele argumenten (met --) zijn standaard niet verplicht. Met required=True kun je dat wijzigen:

parser.add_argument('--config', required=True, help="Path to the configuration file")

Case 1: geldig

python3 file.py --config settings.json

Case 2: ontbreekt

python3 file.py

Geavanceerde functies van argparse
Link kopiëren

Boolean flags
Link kopiëren

parser.add_argument('--debug', action='store_true', help="Enable debugging mode")

Argumentgroepen
Link kopiëren

group = parser.add_argument_group('File Operations')

group.add_argument('--input', type=str, help="Input file")

group.add_argument('--output', type=str, help="Output file")

Mutually exclusive options
Link kopiëren

group = parser.add_mutually_exclusive_group()

group.add_argument('--json', action='store_true', help="Output in JSON format")

group.add_argument('--xml', action='store_true', help="Output in XML format")

Conclusie
Link kopiëren

Het argparse-module maakt het eenvoudig om betrouwbare CLI’s te bouwen voor het verwerken van command-line argumenten in Python. Van eenvoudige parameters tot geavanceerde opties zoals choices en nargs, ontwikkelaars kunnen robuuste en gebruiksvriendelijke tools schrijven. Het gebruik van duidelijke argumentnamen en goede help-teksten verbetert daarbij de leesbaarheid en onderhoudbaarheid van je scripts.