Leer effectieve command-line interfaces in Python bouwen met de argparse-module. Deze gids behandelt basis- en geavanceerde functies, met praktische voorbeelden en tips om je programmeervaardigheden te verbeteren.
Python is een krachtige programmeertaal waarmee ontwikkelaars allerlei toepassingen kunnen maken, van eenvoudige scripts tot grote softwaresystemen. Een van de meest voorkomende programmeertaken is het maken van command-line interfaces (CLI’s), waarmee gebruikers via een terminal of opdrachtregel met programma’s kunnen communiceren. CLI’s zijn essentieel voor scripting, automatisering en situaties waarin een grafische interface onpraktisch is.
Het afhandelen van parameters via de opdrachtregel is een belangrijk onderdeel van het ontwerpen van CLI’s. Met deze argumenten kunnen gebruikers het gedrag van een programma beïnvloeden door tijdens de uitvoering invoerparameters mee te geven. Zonder de mogelijkheid om deze factoren te verwerken, zouden programma’s minder flexibel zijn en lastiger aan te passen voor specifieke taken.
Python biedt verschillende modules voor het parsen van command-line-argumenten, maar de module argparse springt eruit door zijn eenvoud en volledigheid. De argparse-module maakt het eenvoudig om functionele command-line interfaces te ontwikkelen. Hij verwerkt automatisch parameterparsing, toont nuttige instructies en geeft foutmeldingen wanneer gebruikers onjuiste informatie aanleveren.
In deze tutorial bekijken we hoe je het Python-pakket argparse gebruikt. We beginnen met een overzicht van command-line interfaces in Python en het belang van het parsen van invoer via de opdrachtregel. Daarna bespreken we de argparse-module en de voordelen ervan.
Overzicht van command-line interfaces in Python
Command-line interfaces zijn programma’s die volledig op tekstgebaseerde opdrachten draaien. Gebruikers voeren opdrachten in een terminal of opdrachtregel in, die doorgaans argumenten en opties bevatten die het gedrag van het programma wijzigen. CLI’s zijn handig omdat ze eenvoudig te automatiseren zijn en goed te integreren met andere technologieën.
In Python maak je een CLI door een script te schrijven dat invoer via de opdrachtregel accepteert. Deze invoer wordt meestal aangeleverd als een lijst met argumenten die het script kan benaderen en interpreteren. Voor eenvoudige programma’s kan het handmatig afhandelen van deze argumenten via de lijst sys.argv volstaan. Maar naarmate de complexiteit toeneemt, wordt het handmatig verwerken van argumenten inefficiënt en foutgevoelig.
Belang van het parsen van command-line-argumenten
Het parsen van command-line-argumenten is om tal van redenen noodzakelijk:
Flexibiliteit: Door parameters te accepteren kan een programma meerdere taken uitvoeren of op verschillende datasets werken zonder de code te wijzigen. Gebruikers kunnen te verwerken bestanden opgeven, instellingen configureren en modi van uitvoering kiezen.
Gebruiksvriendelijkheid: Correcte argumentparsing zorgt ervoor dat het programma nuttige berichten toont, de gebruiker uitlegt hoe het programma werkt en fouten netjes afhandelt.
Onderhoudbaarheid: Een gespecialiseerde parsingmodule, zoals argparse, maakt je code overzichtelijker en eenvoudiger te onderhouden. Het scheidt de logica voor het parsen van argumenten van de hoofdlogica van het programma.
Introductie tot de argparse-module en de voordelen ervan
De module argparse maakt deel uit van de standaardbibliotheek van Python. Je kunt hem dus gebruiken zonder extra pakketten te installeren. Hij biedt een eenvoudige en consistente interface voor het parsen van invoer via de opdrachtregel. Enkele voordelen van argparse zijn:
Automatische helpgeneratie: Genereert help- en gebruiksberichten op basis van de gedefinieerde argumenten.
Foutafhandeling: Toont duidelijke foutmeldingen wanneer gebruikers ongeldige argumenten invoeren.
Typeconversie: Kan parameterstrings automatisch omzetten naar het juiste gegevenstype.
Ondersteunt zowel verplichte positionele argumenten als optionele argumenten op een eenvoudige manier.
Standaardwaarden: Laat je standaardwaarden opgeven voor parameters die de gebruiker niet meegeeft.
Met argparse kunnen ontwikkelaars zich richten op de kernfunctionaliteit van hun programma, terwijl ze vertrouwen op een solide basis voor het beheren van invoer via de opdrachtregel.
argparse instellen en basisgebruik
Nu we het belang van het parsen van command-line-argumenten en de voordelen van argparse hebben besproken, kijken we hoe je het instelt en gebruikt in een Python-script.
argparse installeren en importeren
Je hoeft niets apart te installeren, want argparse maakt deel uit van de standaardbibliotheek van Python. Je kunt het bovenaan je script importeren.
Deze regel laadt de module argparse in je script, zodat je de functionaliteit kunt gebruiken om command-line-argumenten te parsen.
Een eenvoudige argumentparser maken
De eerste stap bij het gebruiken van argparse is het maken van een parserobject. Dit object slaat informatie op over de argumenten die je programma accepteert en parseert de invoer via de opdrachtregel.
parser = argparse.ArgumentParser(description='Process some integers.')Mogelijk gemaakt door
In dit voorbeeld maken we een ArgumentParser()-object en beschrijven we het programma. Wanneer de gebruiker de helpoptie (-h of --help) kiest, wordt deze beschrijving getoond.
Positionele en optionele argumenten toevoegen
Nu we de parser hebben gemaakt, kunnen we de argumenten opgeven die ons programma accepteert.
Positionele argumenten toevoegen
Positionele argumenten zijn verplicht en moeten in een specifieke volgorde worden opgegeven. Stel bijvoorbeeld een script voor dat twee getallen optelt. We kunnen twee positionele argumenten voor de getallen definiëren:
parser.add_argument('num1',type=int,help='The first number to add.')
parser.add_argument('num2',type=int,help='The second number to add.')Mogelijk gemaakt door
In deze code verwijzen num1 en num2 naar de positionele parameters.
type=int geeft aan dat de parameters naar gehele getallen moeten worden geconverteerd. Het help-argument specificeert een beschrijving die in het helpbericht verschijnt.
Optionele argumenten toevoegen
Optionele argumenten zijn niet verplicht en bieden doorgaans extra opties of wijzigen het gedrag van het programma. Ze krijgen meestal een of twee streepjes als prefix. We voegen een optioneel argument toe om uitgebreide output in te schakelen:
parser.add_argument('-v','--verbose', action='store_true',help='Increase output verbosity.')Mogelijk gemaakt door
Hierbij geldt:
De korte optie is -v (bijvoorbeeld -v). --verbose is de lange optie.
action='store_true' geeft aan dat als de optie is gekozen, het attribuut verbose op True wordt gezet; anders is het False.
Het argument help specificeert een beschrijving voor het helpbericht.
Argumenten parsen en hun waarden benaderen
Nadat we alle argumenten hebben gedefinieerd, moeten we de invoer via de opdrachtregel parsen. Gebruik hiervoor de methode .parse_args().
De geparste parameters worden nu als attributen opgeslagen in de variabele args. We kunnen ze benaderen met puntnotatie.
result = args.num1 + args.num2
print('The sum of {} and {} is {}'.format(args.num1, args.num2, result))if args.verbose:print('Verbose mode is enabled.')Mogelijk gemaakt door
Alles bij elkaar is hier een compleet script dat twee getallen optelt en een optionele verbose-modus bevat:
import argparse
parser = argparse.ArgumentParser(description='Add two integers.')
parser.add_argument('num1',type=int,help='The first number to add.')
parser.add_argument('num2',type=int,help='The second number to add.')
parser.add_argument('-v','--verbose', action='store_true',help='Increase output verbosity.')
args = parser.parse_args()
result = args.num1 + args.num2
print('The sum of {} and {} is {}'.format(args.num1, args.num2, result))if args.verbose:print('Calculation completed successfully.')Mogelijk gemaakt door
Je kunt dit script uitvoeren vanaf de opdrachtregel en de vereiste positionele argumenten meegeven:
Als je de optie -v of --verbose toevoegt, print het script het extra verbose-bericht:
python add_numbers.py 35--verbose
The sum of 3 and 5 is 8
Calculation completed successfully.Mogelijk gemaakt door
Als de gebruiker het script met de optie -h of --help uitvoert, toont argparse een automatisch gegenereerd helpbericht:
python add_numbers.py -h
usage: add_numbers.py [-h][-v] num1 num2
Add two integers.
positional arguments:
num1 The first number to add.
num2 The second number to add.
optional arguments:
-h, --help show this help message and exit
-v, --verbose Increase output verbosity.Mogelijk gemaakt door
Deze functie maakt je programma gebruiksvriendelijker door duidelijke instructies te geven over hoe je het gebruikt.
Geavanceerde argumentafhandeling
Bij het ontwikkelen van command-line-programma’s in Python kun je situaties tegenkomen die complexere argumentparsing vereisen. De module argparse bevat verschillende functies om aan deze complexe eisen te voldoen, zodat je flexibele en gebruiksvriendelijke interfaces kunt bouwen.
nargs gebruiken voor meerdere argumenten
Soms moet je toepassing meerdere waarden voor hetzelfde argument accepteren. Stel bijvoorbeeld dat je een script wilt maken dat meerdere bestanden tegelijk verwerkt. Met de parameter nargs in argparse kun je opgeven hoeveel command-line-argumenten er moeten worden gelezen.
Zo gebruik je nargs om meerdere bestandsnamen te accepteren:
import argparse
parser = argparse.ArgumentParser(description='Process multiple files.')
parser.add_argument('filenames', nargs='+',help='List of files to process.')
args = parser.parse_args()for filename in args.filenames:print(f'Processing file: {filename}')# Add your file processing code hereMogelijk gemaakt door
In dit geval geeft nargs='+' aan de parser door dat hij één of meer argumenten voor filenames moet verwachten. De gebruiker kan zoveel bestandsnamen opgeven als nodig is; ze worden opgeslagen in een lijst genaamd args.filenames.
Als je precies een bepaald aantal argumenten wilt accepteren, stel je nargs in op dat getal. Bijvoorbeeld, nargs=2 vereist exact twee parameters.
choices gebruiken om argumentwaarden te beperken
Soms wil je een argument beperken tot een vooraf gedefinieerde reeks geldige waarden. Dit zorgt ervoor dat de gebruiker geldige invoer geeft en voorkomt fouten of onverwachte acties. Met de parameter choices kun je de toegestane waarden voor een argument opgeven.
Neem een script dat verschillende acties uitvoert afhankelijk van een modus die de gebruiker selecteert.
import argparse
parser = argparse.ArgumentParser(description='Perform actions in different modes.')
parser.add_argument('--mode', choices=['backup','restore','delete'], required=True,help='Mode of operation.')
args = parser.parse_args()if args.mode =='backup':print('Backing up data...')# Backup code hereelif args.mode =='restore':print('Restoring data...')# Restore code hereelif args.mode =='delete':print('Deleting data...')# Delete code hereMogelijk gemaakt door
In dit script moet het argument --mode een van de opgegeven opties zijn. Als de gebruiker een waarde invoert die niet in de lijst staat, geeft argparse een foutmelding.
Booleaanse flags en toggles afhandelen
Booleaanse flags zijn opties waarmee je specifieke functionaliteit in je toepassing in- of uitschakelt. Ze worden meestal zonder waarde gedefinieerd, alleen door de flag in de opdracht op te nemen. Je kunt deze flags in argparse afhandelen met de parameter action.
Voeg bijvoorbeeld een debugmodus toe aan een script:
import argparse
parser = argparse.ArgumentParser(description='A script with debug mode.')
parser.add_argument('--debug', action='store_true',help='Enable debug output.')
args = parser.parse_args()if args.debug:print('Debug mode is enabled.')# Additional debug information hereelse:print('Debug mode is disabled.')Mogelijk gemaakt door
Met action='store_true' zal de flag --debugargs.debug op True zetten als die aanwezig is, en anders op False.
Standaardwaarden instellen en vereiste argumenten
Optionele argumenten hebben vaak zinvolle standaardwaarden. Dit betekent dat als de gebruiker het argument niet opgeeft, de toepassing de standaardwaarde gebruikt. Met het argument default kun je een standaardwaarde instellen.
Hier is een voorbeeld:
import argparse
parser = argparse.ArgumentParser(description='Adjust program settings.')
parser.add_argument('--timeout',type=int, default=30,help='Timeout in seconds.')
args = parser.parse_args()print(f'Timeout is set to {args.timeout} seconds.')Mogelijk gemaakt door
In dit geval is de standaard --timeout 30 seconden als de gebruiker niets opgeeft.
Om een optioneel argument verplicht te maken, stel je required=True in.
import argparse
parser = argparse.ArgumentParser(description='Send a message.')
parser.add_argument('--recipient', required=True,help='Recipient of the message.')
args = parser.parse_args()print(f'Sending message to {args.recipient}.')Mogelijk gemaakt door
Het script vereist nu het argument --recipient.
Help- en foutmeldingen aanpassen
Het bieden van duidelijke en behulpzame berichten aan gebruikers is essentieel voor een effectieve command-line-toepassing. De module argparse genereert automatisch helpberichten, maar je kunt deze berichten aanpassen aan je eigen behoeften.
Automatische helpberichten genereren
Standaard genereert argparse een helpbericht, dat toegankelijk is met de opties -h of --help. Dit bericht bevat het gebruik van het programma, een beschrijving en informatie over elk argument.
Bijvoorbeeld:
import argparse
parser = argparse.ArgumentParser(description='Calculate factorial of a number.')
parser.add_argument('number',type=int,help='The number to calculate the factorial for.')
args = parser.parse_args()Mogelijk gemaakt door
Wanneer een gebruiker het script met -h uitvoert, ziet die:
usage: script.py [-h] number
Calculate factorial of a number.
positional arguments:
number The number to calculate the factorial for.
optional arguments:
-h, --help show this help message and exitMogelijk gemaakt door
Dit automatische helpbericht geeft nuttige informatie zonder extra inspanning.
Helpbeschrijvingen en gebruiksberichten aanpassen
Hoewel de standaardhelpberichten nuttig zijn, wil je ze soms aanpassen om extra informatie te bieden of een specifieke structuur te volgen. Je kunt de description, epilog en usage-tekst in ArgumentParser wijzigen.
Bijvoorbeeld, om een epiloog toe te voegen en het gebruiksbericht te personaliseren:
import argparse
parser = argparse.ArgumentParser(
description='Convert temperatures between Celsius and Fahrenheit.',
epilog='Enjoy using the temperature converter!',
usage='%(prog)s [options] temperature')
parser.add_argument('temperature',type=float,help='Temperature value to convert.')
parser.add_argument('--to-fahrenheit', action='store_true',help='Convert Celsius to Fahrenheit.')
parser.add_argument('--to-celsius', action='store_true',help='Convert Fahrenheit to Celsius.')
args = parser.parse_args()Mogelijk gemaakt door
Wanneer de gebruiker nu het helpbericht bekijkt, bevat het de aangepaste beschrijving, usage en epiloog:
python file.py --help
usage: p.py [options] temperature
Convert temperatures between Celsius and Fahrenheit.
positional arguments:
temperature Temperature value to convert.
options:
-h, --help show this help message and exit
--to-fahrenheit Convert Celsius to Fahrenheit.
--to-celsius Convert Fahrenheit to Celsius.
Mogelijk gemaakt door
Foutafhandeling en feedback voor gebruikers beheren
Als een gebruiker ongeldige argumenten invoert, toont argparse een foutmelding en wordt het programma afgesloten. Je kunt dit gedrag aanpassen om nuttigere feedback te geven of fouten anders af te handelen.
Eén aanpak is het overschrijven van de methode error in een subklasse van ArgumentParser:
import argparse
import sys
classCustomArgumentParser(argparse.ArgumentParser):deferror(self, message):print(f'Error: {message}')
self.print_help()
sys.exit(2)
parser = CustomArgumentParser(description='Divide two numbers.')
parser.add_argument('numerator',type=float,help='The numerator.')
parser.add_argument('denominator',type=float,help='The denominator.')
args = parser.parse_args()if args.denominator ==0:
parser.error('Denominator cannot be zero.')
result = args.numerator / args.denominator
print(f'Result: {result}')Mogelijk gemaakt door
Als de gebruiker in dit script probeert te delen door nul, toont de toepassing een foutmelding en helptekst, waarmee de gebruiker wordt aangestuurd om geldige gegevens te geven.
Python file.py 60
Error: Denominator cannot be zero.
usage: file.py [-h] numerator denominator
Divide two numbers.
positional arguments:
numerator The numerator.
denominator The denominator.
options:
-h, --help show this help message and exitMogelijk gemaakt door
Je kunt ook aangepaste foutafhandeling in je script opnemen. Bijvoorbeeld, om ongeldige bestandspaden af te handelen:
import argparse
import os
parser = argparse.ArgumentParser(description='Read a file and display its contents.')
parser.add_argument('filepath',help='Path to the file.')
args = parser.parse_args()ifnot os.path.exists(args.filepath):
parser.error(f"The file {args.filepath} does not exist.")withopen(args.filepath,'r')asfile:
contents =file.read()print(contents)Mogelijk gemaakt door
Het script uitvoeren met een ongeldig pad levert onderstaande fout op:
python app..py file
usage: p.py [-h] filepath
app.py: error: The filefile does not exist.Mogelijk gemaakt door
Praktijkvoorbeelden en use cases
Begrijpen hoe je de module argparse in praktijksituaties gebruikt, maakt de functionaliteit duidelijker. Laten we enkele voorbeelden bekijken van het gebruik van argparse in realistische toepassingen.
Een rekenmachine voor de opdrachtregel bouwen
Stel dat je een eenvoudige rekenmachine moet ontwikkelen die basisbewerkingen via de opdrachtregel kan uitvoeren. Deze rekenmachine moet twee getallen en een operator accepteren om de gevraagde berekening uit te voeren.
Zo kun je dit aanpakken:
import argparse
parser = argparse.ArgumentParser(description='Simple command-line calculator.')
parser.add_argument('num1',type=float,help='First number.')
parser.add_argument('operator', choices=['+','-','*','/'],help='Operation to perform.')
parser.add_argument('num2',type=float,help='Second number.')
args = parser.parse_args()if args.operator =='+':
result = args.num1 + args.num2
elif args.operator =='-':
result = args.num1 - args.num2
elif args.operator =='*':
result = args.num1 * args.num2
elif args.operator =='/':if args.num2 ==0:print('Error: Division by zero is not allowed.')
exit(1)
result = args.num1 / args.num2
print(f'The result is: {result}')Mogelijk gemaakt door
In dit script wordt de module argparse gebruikt om drie positionele argumenten te definiëren: twee getallen en een operator. Het argument choices beperkt de operator tot geldige rekenkundige symbolen. Wanneer de gebruiker het script uitvoert, kan die bijvoorbeeld deze berekening doen:
Deze eenvoudige rekenmachine laat zien hoe opties via de opdrachtregel de flexibiliteit en interactiviteit van een programma vergroten.
Een bestandsverwerkend script met meerdere opties maken
Stel dat je een script nodig hebt dat tekstbestanden verwerkt en opties biedt zoals het opgeven van een uitvoerbestand, het kiezen van een verwerkingsmodus en het inschakelen van verbose-output.
Zo zou je het kunnen opzetten:
import argparse
parser = argparse.ArgumentParser(description='Process text files.')
parser.add_argument('input_file',help='Path to the input file.')
parser.add_argument('-o','--output',help='Path to the output file.')
parser.add_argument('-m','--mode', choices=['uppercase','lowercase'], default='uppercase',help='Processing mode.')
parser.add_argument('-v','--verbose', action='store_true',help='Enable verbose output.')
args = parser.parse_args()# Read the input filewithopen(args.input_file,'r')asfile:
content =file.read()if args.verbose:print(f'Reading from {args.input_file}')# Process the contentif args.mode =='uppercase':
processed_content = content.upper()else:
processed_content = content.lower()if args.verbose:print('Processing content')# Write to the output file or print to consoleif args.output:withopen(args.output,'w')asfile:file.write(processed_content)if args.verbose:print(f'Writing output to {args.output}')else:print(processed_content)Mogelijk gemaakt door
Dit script accepteert een invoerbestand en heeft opties voor het uitvoerbestand, de verwerkingsmodus en verbose-output. Gebruikers kunnen het gedrag van het script aanpassen zonder de code te wijzigen.
python text_processor.py input.txt -o output.txt --mode lowercase -v
Reading frominput.txt
Processing content
Writing output to output.txtMogelijk gemaakt door
Een CLI-tool met subcommando’s ontwikkelen
In complexere toepassingen zijn mogelijk subcommando’s nodig, vergelijkbaar met hoe git werkt met opdrachten zoals git commit en git push. De module argparse biedt subparsers voor dit doel.
Zo maak je een CLI-tool met subcommando’s:
import argparse
parser = argparse.ArgumentParser(description='Manage tasks.')
subparsers = parser.add_subparsers(dest='command', required=True)# Subcommand 'add'
parser_add = subparsers.add_parser('add',help='Add a new task.')
parser_add.add_argument('name',help='Name of the task.')
parser_add.add_argument('-p','--priority',type=int, choices=range(1,6), default=3,help='Priority of the task.')# Subcommand 'list'
parser_list = subparsers.add_parser('list',help='List all tasks.')
parser_list.add_argument('-a','--all', action='store_true',help='List all tasks, including completed ones.')# Subcommand 'complete'
parser_complete = subparsers.add_parser('complete',help='Mark a task as completed.')
parser_complete.add_argument('task_id',type=int,help='ID of the task to complete.')
args = parser.parse_args()if args.command =='add':print(f"Adding task '{args.name}' with priority {args.priority}")# Code to add the taskelif args.command =='list':print('Listing tasks')if args.all:print('Including completed tasks')# Code to list taskselif args.command =='complete':print(f'Marking task {args.task_id} as completed')# Code to complete the taskMogelijk gemaakt door
In dit voorbeeld heeft het script drie subcommando’s: add, list en complete. Elk subcommando heeft zijn eigen argumenten. Wanneer gebruikers het script uitvoeren, geven ze het subcommando en eventuele extra parameters op.
Bijvoorbeeld:
python task_manager.py add"Write report"-p2
Adding task 'Write report' with priority 2Mogelijk gemaakt door
subparsers stellen je in staat complexe command-line-tools te maken die goed georganiseerd en eenvoudig uit te breiden zijn, zodat je toepassingen kunt bouwen die meerdere dingen kunnen binnen één interface.
Best practices en tips voor Python argparse
Het ontwikkelen van command-line-programma’s gaat verder dan alleen werkende code schrijven. Het gaat ook om schone, onderhoudbare en gebruiksvriendelijke code.
Hier zijn enkele best practices bij het werken met de module argparse.
Code organiseren voor leesbaarheid en onderhoud
Als je scripts complexer worden, is het cruciaal om je code georganiseerd te houden voor beter begrip en onderhoud. Eén manier om dit te bereiken is door functies en klassen te gebruiken om verschillende delen van je code te structureren.
Door je programma op te delen in kleinere, herbruikbare stukjes, wordt het beheer eenvoudiger en voorkom je code-duplicatie.
In een taakbeheerscript kun je bijvoorbeeld aparte functies definiëren voor taken toevoegen, taken tonen en taken voltooien. Deze scheiding stelt je in staat je op één onderdeel van de logica tegelijk te concentreren, waardoor je code duidelijker wordt.
Een andere effectieve techniek is om je argumentparsing te scheiden van de rest van je code. Door alle argumentdefinities en -parsing aan het begin van je script te plaatsen, of in een aparte functie, wordt het voor anderen gemakkelijker om te begrijpen hoe je programma met invoer omgaat.
Het gebruik van passende variabelenamen verbetert ook de leesbaarheid. Kies namen die hun doel weerspiegelen, zodat iedereen die je code bekijkt, begrijpt wat er gebeurt. Voeg commentaar en docstrings toe om uit te leggen wat je functies doen en om belangrijke details toe te lichten; dit verhoogt het begrip.
Command-line-toepassingen testen en debuggen
Je toepassingen testen is cruciaal om te zorgen dat ze correct werken en om fouten vroegtijdig te vinden. Unittests schrijven met Python-testframeworks zoals unittest of pytest is een uitstekende manier om je code te testen. Met deze tests kun je verschillende invoer simuleren en controleren of je functies goed werken.
Je kunt bijvoorbeeld meerdere scenario’s testen door invoer via de opdrachtregel te mocken in plaats van het script daadwerkelijk vanaf de opdrachtregel uit te voeren. Met deze aanpak controleer je of je argumentparsing werkt zoals verwacht en of je toepassing verschillende scenario’s correct afhandelt.
Ook het netjes afhandelen van exceptions is belangrijk. Met try-except-blokken kun je fouten opvangen en nuttige berichten aan de gebruiker geven. Dit maakt je toepassing stabieler en gebruiksvriendelijker.
Overweeg ook een debug-flag in je script op te nemen. Deze flag kan extra uitvoer inschakelen waarmee je de uitvoering van het programma kunt volgen wanneer er iets misgaat. Zo’n optie maakt het eenvoudiger om problemen tijdens ontwikkeling en onderhoud te diagnosticeren.
argparse vergelijken met andere libraries voor argumentparsing
Hoewel argparse een waardevol hulpmiddel is in Pythons standaardbibliotheek, zijn er andere libraries beschikbaar die alternatieve manieren bieden om argumenten via de opdrachtregel te parsen. Door deze opties te begrijpen, kies je het juiste hulpmiddel voor je project.
Een dergelijke library is Click. Click is een third-party pakket voor het bouwen van command-line interfaces met decorators. Het heeft een intuïtievere syntaxis en is ideaal voor geavanceerde toepassingen. Je kunt bijvoorbeeld Python-decorators gebruiken om commando’s en opties te definiëren, waardoor je code compacter en begrijpelijker wordt.
Docopt is een andere optie waarmee je je command-line interface definieert via de docstring van het programma. Docopt parseert automatisch het helpbericht en bouwt de argumentparser wanneer de gebruiksinstructies in de docstring zijn opgenomen. Deze aanpak is elegant en geschikt voor eenvoudige scripts die een menselijker leesbare specificatie nodig hebben.
Bij het kiezen van een library moet je rekening houden met de eisen van je project. Als je externe afhankelijkheden wilt vermijden en een tool wilt die de meeste situaties aankan, is argparse een uitstekende keuze. Als je een intuïtievere syntaxis wilt en aan een complexe toepassing werkt, kan Click beter passen. Docopt is een goede keuze voor kleine programma’s met eenvoudige interfaces.
Conclusie
In dit artikel hebben we bekeken hoe je met de Python-module argparse command-line-programma’s in Python ontwikkelt. Aan de hand van praktijkvoorbeelden leerden we realistische scripts te maken die gebruikersinvoer ontvangen en relevante taken uitvoeren.
Van het ontwerpen van een eenvoudige rekenmachine tot het ontwikkelen van een tool voor taakbeheer met subcommando’s: de module argparse biedt de flexibiliteit die nodig is om uiteenlopende situaties aan te kunnen. Door best practices te volgen, zoals codeorganisatie, grondig testen en het overwegen van alternatieve libraries, kun je toepassingen bouwen die betrouwbaar en eenvoudig te onderhouden zijn.
Of je nu taken automatiseert, data analyseert of complexe tools bouwt: inzicht in het parsen van argumenten via de opdrachtregel vergroot je vermogen om effectieve Python-programma’s te ontwerpen. Verdiep je Python-kennis vandaag nog met onze skill track Python Fundamentals.
Python argparse FAQ’s
Hoe maak ik een optioneel argument verplicht in argparse?⌄
Optionele argumenten in argparse zijn doorgaans niet verplicht omdat ze per definitie optioneel zijn. Toch zijn er situaties waarin je een argument dat begint met -- verplicht wilt maken. Stel daarvoor de parameter required in op True bij het toevoegen van het argument.
Zo doe je dat:
import argparse
parser = argparse.ArgumentParser(description='Process some data.')
parser.add_argument('--input', required=True,help='Path to the input file.')
args = parser.parse_args()print(f'Input file: {args.input}')Mogelijk gemaakt door
Hoe ga ik om met wederzijds uitsluitende argumenten in argparse?⌄
Soms kom je argumenten tegen die niet tegelijk gebruikt mogen worden. Een script kan bijvoorbeeld ofwel --verbose of --quiet accepteren, maar niet beide tegelijk. Om dit te regelen ondersteunt argparse het definiëren van wederzijds uitsluitende groepen.
Zo stel je dat in:
import argparse
parser = argparse.ArgumentParser(description='Process some data.')
group = parser.add_mutually_exclusive_group()
group.add_argument('--verbose', action='store_true',help='Enable verbose output.')
group.add_argument('--quiet', action='store_true',help='Enable quiet mode.')
args = parser.parse_args()if args.verbose:print('Verbose mode is on.')elif args.quiet:print('Quiet mode is on.')else:print('Default mode is on.')Mogelijk gemaakt door
Dit script laat de gebruiker ofwel verbose of quiet inschakelen, maar niet beide. Als ze beide opties tegelijk proberen te gebruiken, geeft argparse een foutmelding.
Hoe kan ik argparse gebruiken om argumenten uit een bestand te lezen in plaats van via de opdrachtregel?⌄
Hoewel argparse bedoeld is voor het parsen van argumenten via de opdrachtregel, wil je ze soms uit een bestand lezen. Dat kan door de argumenten uit het bestand te lezen en aan de methode parse_args() door te geven via de parameter args.
Hier is een voorbeeld.
import argparse
parser = argparse.ArgumentParser(description='Process some data.')
parser.add_argument('--input',help='Path to the input file.')
parser.add_argument('--output',help='Path to the output file.')# Read arguments from a filewithopen('args.txt','r')asfile:
file_args =file.read().split()
args = parser.parse_args(file_args)print(f'Input file: {args.input}')print(f'Output file: {args.output}')Mogelijk gemaakt door
In dit geval kan het bestand args.txt het volgende bevatten:
Het script leest de parameters uit het bestand, zet ze om in een lijst en geeft die vervolgens door aan parse_args(). Zo kun je je argumenten in een bestand beheren in plaats van ze telkens opnieuw in te voeren.
Hoe pas ik het helpbericht in argparse aan om standaardwaarden te tonen?⌄
Standaard toont argparse de standaardwaarden van parameters niet in het helpbericht. Als je standaardwaarden in de helptekst wilt opnemen, pas je ofwel de parameter help aan of gebruik je de ArgumentDefaultsHelpFormatter.
Zo voeg je standaardwaarden toe aan het helpbericht:
import argparse
parser = argparse.ArgumentParser(
description='Process some data.',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--timeout',type=int, default=60,help='Timeout in seconds.')
args = parser.parse_args()print(f'Timeout is set to {args.timeout} seconds.')Mogelijk gemaakt door
Met de ArgumentDefaultsHelpFormatter toont het helpbericht de standaardwaarde voor het argument --timeout:
usage: script.py [-h][--timeout TIMEOUT]
Process some data.
optional arguments:-h,--help show this help message and exit
--timeout TIMEOUT Timeout in seconds.(default:60)Mogelijk gemaakt door
Dit geeft gebruikers meer informatie over de standaardinstellingen van je programma.
Wat zijn best practices voor het testen van command-line-toepassingen die argparse gebruiken?⌄
Het testen van command-line-apps kan lastig zijn, maar er zijn manieren om het eenvoudiger te maken. Een handige methode is het nabootsen van command-line-argumenten met de module unittest.
Hier is een voorbeeld van het testen van een script dat argparse gebruikt:
import unittest
import argparse
import sys
defcreate_parser():
parser = argparse.ArgumentParser(description='Process some data.')
parser.add_argument('--number',type=int,help='A number.')return parser
defmain(args):
parser = create_parser()
parsed_args = parser.parse_args(args)if parsed_args.number isNone:
parser.error('No number provided.')
result = parsed_args.number *2return result
classTestMain(unittest.TestCase):deftest_main_with_number(self):
test_args =['--number','5']
result = main(test_args)
self.assertEqual(result,10)deftest_main_without_number(self):
test_args =[]with self.assertRaises(SystemExit):
main(test_args)if __name__ =='__main__':
unittest.main()Mogelijk gemaakt door
In het testscript:
De methode .create_parser() initialiseert de argumentparser.
De functie main() verwerkt de argumenten en voert de hoofdlijn uit.
De klasse TestMain biedt testmethoden om verschillende invoeren via de opdrachtregel te simuleren.
De tests zorgen ervoor dat het programma reageert zoals verwacht bij diverse invoeren.
Structureer je code zodanig dat de argumentverwerking en de primaire logica gescheiden zijn; dat maakt het eenvoudiger om verschillende delen van je programma te testen.
Python is een krachtige programmeertaal waarmee ontwikkelaars allerlei toepassingen kunnen maken, van eenvoudige scripts tot grote softwaresystemen. Een van de meest voorkomende programmeertaken is het maken van command-line interfaces (CLI’s), waarmee gebruikers via een terminal of opdrachtregel met programma’s kunnen communiceren. CLI’s zijn essentieel voor scripting, automatisering en situaties waarin een grafische interface onpraktisch is.
Het afhandelen van parameters via de opdrachtregel is een belangrijk onderdeel van het ontwerpen van CLI’s. Met deze argumenten kunnen gebruikers het gedrag van een programma beïnvloeden door tijdens de uitvoering invoerparameters mee te geven. Zonder de mogelijkheid om deze factoren te verwerken, zouden programma’s minder flexibel zijn en lastiger aan te passen voor specifieke taken.
Python biedt verschillende modules voor het parsen van command-line-argumenten, maar de module
argparsespringt eruit door zijn eenvoud en volledigheid. Deargparse-module maakt het eenvoudig om functionele command-line interfaces te ontwikkelen. Hij verwerkt automatisch parameterparsing, toont nuttige instructies en geeft foutmeldingen wanneer gebruikers onjuiste informatie aanleveren.In deze tutorial bekijken we hoe je het Python-pakket
argparsegebruikt. We beginnen met een overzicht van command-line interfaces in Python en het belang van het parsen van invoer via de opdrachtregel. Daarna bespreken we de argparse-module en de voordelen ervan.Overzicht van command-line interfaces in Python
Command-line interfaces zijn programma’s die volledig op tekstgebaseerde opdrachten draaien. Gebruikers voeren opdrachten in een terminal of opdrachtregel in, die doorgaans argumenten en opties bevatten die het gedrag van het programma wijzigen. CLI’s zijn handig omdat ze eenvoudig te automatiseren zijn en goed te integreren met andere technologieën.
In Python maak je een CLI door een script te schrijven dat invoer via de opdrachtregel accepteert. Deze invoer wordt meestal aangeleverd als een lijst met argumenten die het script kan benaderen en interpreteren. Voor eenvoudige programma’s kan het handmatig afhandelen van deze argumenten via de lijst sys.argv volstaan. Maar naarmate de complexiteit toeneemt, wordt het handmatig verwerken van argumenten inefficiënt en foutgevoelig.
Belang van het parsen van command-line-argumenten
Het parsen van command-line-argumenten is om tal van redenen noodzakelijk:
Introductie tot de argparse-module en de voordelen ervan
De module
argparsemaakt deel uit van de standaardbibliotheek van Python. Je kunt hem dus gebruiken zonder extra pakketten te installeren. Hij biedt een eenvoudige en consistente interface voor het parsen van invoer via de opdrachtregel. Enkele voordelen vanargparsezijn:Met argparse kunnen ontwikkelaars zich richten op de kernfunctionaliteit van hun programma, terwijl ze vertrouwen op een solide basis voor het beheren van invoer via de opdrachtregel.
argparse instellen en basisgebruik
Nu we het belang van het parsen van command-line-argumenten en de voordelen van
argparsehebben besproken, kijken we hoe je het instelt en gebruikt in een Python-script.argparse installeren en importeren
Je hoeft niets apart te installeren, want
argparsemaakt deel uit van de standaardbibliotheek van Python. Je kunt het bovenaan je script importeren.Deze regel laadt de module
argparsein je script, zodat je de functionaliteit kunt gebruiken om command-line-argumenten te parsen.Een eenvoudige argumentparser maken
De eerste stap bij het gebruiken van
argparseis het maken van een parserobject. Dit object slaat informatie op over de argumenten die je programma accepteert en parseert de invoer via de opdrachtregel.In dit voorbeeld maken we een
ArgumentParser()-object en beschrijven we het programma. Wanneer de gebruiker de helpoptie (-hof--help) kiest, wordt deze beschrijving getoond.Positionele en optionele argumenten toevoegen
Nu we de parser hebben gemaakt, kunnen we de argumenten opgeven die ons programma accepteert.
Positionele argumenten toevoegen
Positionele argumenten zijn verplicht en moeten in een specifieke volgorde worden opgegeven. Stel bijvoorbeeld een script voor dat twee getallen optelt. We kunnen twee positionele argumenten voor de getallen definiëren:
In deze code verwijzen
num1ennum2naar de positionele parameters.type=intgeeft aan dat de parameters naar gehele getallen moeten worden geconverteerd. Het help-argument specificeert een beschrijving die in het helpbericht verschijnt.Optionele argumenten toevoegen
Optionele argumenten zijn niet verplicht en bieden doorgaans extra opties of wijzigen het gedrag van het programma. Ze krijgen meestal een of twee streepjes als prefix. We voegen een optioneel argument toe om uitgebreide output in te schakelen:
Hierbij geldt:
-v(bijvoorbeeld-v).--verboseis de lange optie.action='store_true'geeft aan dat als de optie is gekozen, het attribuut verbose opTruewordt gezet; anders is hetFalse.helpspecificeert een beschrijving voor het helpbericht.Argumenten parsen en hun waarden benaderen
Nadat we alle argumenten hebben gedefinieerd, moeten we de invoer via de opdrachtregel parsen. Gebruik hiervoor de methode
.parse_args().De geparste parameters worden nu als attributen opgeslagen in de variabele
args. We kunnen ze benaderen met puntnotatie.Alles bij elkaar is hier een compleet script dat twee getallen optelt en een optionele verbose-modus bevat:
Je kunt dit script uitvoeren vanaf de opdrachtregel en de vereiste positionele argumenten meegeven:
Als je de optie
-vof--verbosetoevoegt, print het script het extra verbose-bericht:Als de gebruiker het script met de optie
-hof--helpuitvoert, toontargparseeen automatisch gegenereerd helpbericht:Deze functie maakt je programma gebruiksvriendelijker door duidelijke instructies te geven over hoe je het gebruikt.
Geavanceerde argumentafhandeling
Bij het ontwikkelen van command-line-programma’s in Python kun je situaties tegenkomen die complexere argumentparsing vereisen. De module
argparsebevat verschillende functies om aan deze complexe eisen te voldoen, zodat je flexibele en gebruiksvriendelijke interfaces kunt bouwen.nargs gebruiken voor meerdere argumenten
Soms moet je toepassing meerdere waarden voor hetzelfde argument accepteren. Stel bijvoorbeeld dat je een script wilt maken dat meerdere bestanden tegelijk verwerkt. Met de parameter nargs in
argparsekun je opgeven hoeveel command-line-argumenten er moeten worden gelezen.Zo gebruik je
nargsom meerdere bestandsnamen te accepteren:In dit geval geeft
nargs='+'aan de parser door dat hij één of meer argumenten voor filenames moet verwachten. De gebruiker kan zoveel bestandsnamen opgeven als nodig is; ze worden opgeslagen in een lijst genaamdargs.filenames.Als je precies een bepaald aantal argumenten wilt accepteren, stel je
nargsin op dat getal. Bijvoorbeeld,nargs=2vereist exact twee parameters.choices gebruiken om argumentwaarden te beperken
Soms wil je een argument beperken tot een vooraf gedefinieerde reeks geldige waarden. Dit zorgt ervoor dat de gebruiker geldige invoer geeft en voorkomt fouten of onverwachte acties. Met de parameter choices kun je de toegestane waarden voor een argument opgeven.
Neem een script dat verschillende acties uitvoert afhankelijk van een modus die de gebruiker selecteert.
In dit script moet het argument
--modeeen van de opgegeven opties zijn. Als de gebruiker een waarde invoert die niet in de lijst staat, geeftargparseeen foutmelding.Booleaanse flags en toggles afhandelen
Booleaanse flags zijn opties waarmee je specifieke functionaliteit in je toepassing in- of uitschakelt. Ze worden meestal zonder waarde gedefinieerd, alleen door de flag in de opdracht op te nemen. Je kunt deze flags in
argparseafhandelen met de parameteraction.Voeg bijvoorbeeld een debugmodus toe aan een script:
Met
action='store_true'zal de flag--debugargs.debugopTruezetten als die aanwezig is, en anders opFalse.Standaardwaarden instellen en vereiste argumenten
Optionele argumenten hebben vaak zinvolle standaardwaarden. Dit betekent dat als de gebruiker het argument niet opgeeft, de toepassing de standaardwaarde gebruikt. Met het argument
defaultkun je een standaardwaarde instellen.Hier is een voorbeeld:
In dit geval is de standaard
--timeout30 seconden als de gebruiker niets opgeeft.Om een optioneel argument verplicht te maken,
stel je required=True in.Het script vereist nu het argument
--recipient.Help- en foutmeldingen aanpassen
Het bieden van duidelijke en behulpzame berichten aan gebruikers is essentieel voor een effectieve command-line-toepassing. De module
argparsegenereert automatisch helpberichten, maar je kunt deze berichten aanpassen aan je eigen behoeften.Automatische helpberichten genereren
Standaard genereert
argparseeen helpbericht, dat toegankelijk is met de opties-hof--help. Dit bericht bevat het gebruik van het programma, een beschrijving en informatie over elk argument.Bijvoorbeeld:
Wanneer een gebruiker het script met
-huitvoert, ziet die:Dit automatische helpbericht geeft nuttige informatie zonder extra inspanning.
Helpbeschrijvingen en gebruiksberichten aanpassen
Hoewel de standaardhelpberichten nuttig zijn, wil je ze soms aanpassen om extra informatie te bieden of een specifieke structuur te volgen. Je kunt de description, epilog en usage-tekst in
ArgumentParserwijzigen.Bijvoorbeeld, om een epiloog toe te voegen en het gebruiksbericht te personaliseren:
Wanneer de gebruiker nu het helpbericht bekijkt, bevat het de aangepaste beschrijving, usage en epiloog:
Foutafhandeling en feedback voor gebruikers beheren
Als een gebruiker ongeldige argumenten invoert, toont
argparseeen foutmelding en wordt het programma afgesloten. Je kunt dit gedrag aanpassen om nuttigere feedback te geven of fouten anders af te handelen.Eén aanpak is het overschrijven van de methode error in een subklasse van
ArgumentParser:Als de gebruiker in dit script probeert te delen door nul, toont de toepassing een foutmelding en helptekst, waarmee de gebruiker wordt aangestuurd om geldige gegevens te geven.
Je kunt ook aangepaste foutafhandeling in je script opnemen. Bijvoorbeeld, om ongeldige bestandspaden af te handelen:
Het script uitvoeren met een ongeldig pad levert onderstaande fout op:
Praktijkvoorbeelden en use cases
Begrijpen hoe je de module
argparsein praktijksituaties gebruikt, maakt de functionaliteit duidelijker. Laten we enkele voorbeelden bekijken van het gebruik vanargparsein realistische toepassingen.Een rekenmachine voor de opdrachtregel bouwen
Stel dat je een eenvoudige rekenmachine moet ontwikkelen die basisbewerkingen via de opdrachtregel kan uitvoeren. Deze rekenmachine moet twee getallen en een operator accepteren om de gevraagde berekening uit te voeren.
Zo kun je dit aanpakken:
In dit script wordt de module
argparsegebruikt om drie positionele argumenten te definiëren: twee getallen en een operator. Het argumentchoicesbeperkt de operator tot geldige rekenkundige symbolen. Wanneer de gebruiker het script uitvoert, kan die bijvoorbeeld deze berekening doen:Deze eenvoudige rekenmachine laat zien hoe opties via de opdrachtregel de flexibiliteit en interactiviteit van een programma vergroten.
Een bestandsverwerkend script met meerdere opties maken
Stel dat je een script nodig hebt dat tekstbestanden verwerkt en opties biedt zoals het opgeven van een uitvoerbestand, het kiezen van een verwerkingsmodus en het inschakelen van verbose-output.
Zo zou je het kunnen opzetten:
Dit script accepteert een invoerbestand en heeft opties voor het uitvoerbestand, de verwerkingsmodus en verbose-output. Gebruikers kunnen het gedrag van het script aanpassen zonder de code te wijzigen.
Een CLI-tool met subcommando’s ontwikkelen
In complexere toepassingen zijn mogelijk subcommando’s nodig, vergelijkbaar met hoe git werkt met opdrachten zoals git commit en git push. De module
argparsebiedt subparsers voor dit doel.Zo maak je een CLI-tool met subcommando’s:
In dit voorbeeld heeft het script drie subcommando’s:
add,listencomplete. Elk subcommando heeft zijn eigen argumenten. Wanneer gebruikers het script uitvoeren, geven ze het subcommando en eventuele extra parameters op.Bijvoorbeeld:
Taken weergeven
Taken als voltooid markeren:
subparsersstellen je in staat complexe command-line-tools te maken die goed georganiseerd en eenvoudig uit te breiden zijn, zodat je toepassingen kunt bouwen die meerdere dingen kunnen binnen één interface.Best practices en tips voor Python argparse
Het ontwikkelen van command-line-programma’s gaat verder dan alleen werkende code schrijven. Het gaat ook om schone, onderhoudbare en gebruiksvriendelijke code.
Hier zijn enkele best practices bij het werken met de module
argparse.Code organiseren voor leesbaarheid en onderhoud
Als je scripts complexer worden, is het cruciaal om je code georganiseerd te houden voor beter begrip en onderhoud. Eén manier om dit te bereiken is door functies en klassen te gebruiken om verschillende delen van je code te structureren.
Door je programma op te delen in kleinere, herbruikbare stukjes, wordt het beheer eenvoudiger en voorkom je code-duplicatie.
In een taakbeheerscript kun je bijvoorbeeld aparte functies definiëren voor taken toevoegen, taken tonen en taken voltooien. Deze scheiding stelt je in staat je op één onderdeel van de logica tegelijk te concentreren, waardoor je code duidelijker wordt.
Een andere effectieve techniek is om je argumentparsing te scheiden van de rest van je code. Door alle argumentdefinities en -parsing aan het begin van je script te plaatsen, of in een aparte functie, wordt het voor anderen gemakkelijker om te begrijpen hoe je programma met invoer omgaat.
Het gebruik van passende variabelenamen verbetert ook de leesbaarheid. Kies namen die hun doel weerspiegelen, zodat iedereen die je code bekijkt, begrijpt wat er gebeurt. Voeg commentaar en
docstringstoe om uit te leggen wat je functies doen en om belangrijke details toe te lichten; dit verhoogt het begrip.Command-line-toepassingen testen en debuggen
Je toepassingen testen is cruciaal om te zorgen dat ze correct werken en om fouten vroegtijdig te vinden. Unittests schrijven met Python-testframeworks zoals
unittestofpytestis een uitstekende manier om je code te testen. Met deze tests kun je verschillende invoer simuleren en controleren of je functies goed werken.Je kunt bijvoorbeeld meerdere scenario’s testen door invoer via de opdrachtregel te mocken in plaats van het script daadwerkelijk vanaf de opdrachtregel uit te voeren. Met deze aanpak controleer je of je argumentparsing werkt zoals verwacht en of je toepassing verschillende scenario’s correct afhandelt.
Ook het netjes afhandelen van exceptions is belangrijk. Met
try-except-blokken kun je fouten opvangen en nuttige berichten aan de gebruiker geven. Dit maakt je toepassing stabieler en gebruiksvriendelijker.Overweeg ook een debug-flag in je script op te nemen. Deze flag kan extra uitvoer inschakelen waarmee je de uitvoering van het programma kunt volgen wanneer er iets misgaat. Zo’n optie maakt het eenvoudiger om problemen tijdens ontwikkeling en onderhoud te diagnosticeren.
argparse vergelijken met andere libraries voor argumentparsing
Hoewel
argparseeen waardevol hulpmiddel is in Pythons standaardbibliotheek, zijn er andere libraries beschikbaar die alternatieve manieren bieden om argumenten via de opdrachtregel te parsen. Door deze opties te begrijpen, kies je het juiste hulpmiddel voor je project.Een dergelijke library is Click. Click is een third-party pakket voor het bouwen van command-line interfaces met decorators. Het heeft een intuïtievere syntaxis en is ideaal voor geavanceerde toepassingen. Je kunt bijvoorbeeld Python-decorators gebruiken om commando’s en opties te definiëren, waardoor je code compacter en begrijpelijker wordt.
Docopt is een andere optie waarmee je je command-line interface definieert via de docstring van het programma. Docopt parseert automatisch het helpbericht en bouwt de argumentparser wanneer de gebruiksinstructies in de docstring zijn opgenomen. Deze aanpak is elegant en geschikt voor eenvoudige scripts die een menselijker leesbare specificatie nodig hebben.
Bij het kiezen van een library moet je rekening houden met de eisen van je project. Als je externe afhankelijkheden wilt vermijden en een tool wilt die de meeste situaties aankan, is argparse een uitstekende keuze. Als je een intuïtievere syntaxis wilt en aan een complexe toepassing werkt, kan Click beter passen. Docopt is een goede keuze voor kleine programma’s met eenvoudige interfaces.
Conclusie
In dit artikel hebben we bekeken hoe je met de Python-module
argparsecommand-line-programma’s in Python ontwikkelt. Aan de hand van praktijkvoorbeelden leerden we realistische scripts te maken die gebruikersinvoer ontvangen en relevante taken uitvoeren.Van het ontwerpen van een eenvoudige rekenmachine tot het ontwikkelen van een tool voor taakbeheer met subcommando’s: de module
argparsebiedt de flexibiliteit die nodig is om uiteenlopende situaties aan te kunnen. Door best practices te volgen, zoals codeorganisatie, grondig testen en het overwegen van alternatieve libraries, kun je toepassingen bouwen die betrouwbaar en eenvoudig te onderhouden zijn.Of je nu taken automatiseert, data analyseert of complexe tools bouwt: inzicht in het parsen van argumenten via de opdrachtregel vergroot je vermogen om effectieve Python-programma’s te ontwerpen. Verdiep je Python-kennis vandaag nog met onze skill track Python Fundamentals.