De argumenten die achter de naam van het programma in de opdrachtregelshell van het besturingssysteem worden gegeven, staan bekend als Commandoregelargumenten . Python biedt verschillende manieren om met dit soort argumenten om te gaan. De drie meest voorkomende zijn:
Met behulp van sys.argv
De sys-module biedt functies en variabelen die worden gebruikt om verschillende delen van de Python-runtime-omgeving te manipuleren. Deze module biedt toegang tot enkele variabelen die door de tolk worden gebruikt of onderhouden, en tot functies die een sterke interactie met de tolk hebben.
Eén zo'n variabele is sys.argv, een eenvoudige lijststructuur. Het hoofddoel is:
- Het is een lijst met opdrachtregelargumenten.
- len(sys.argv) levert het aantal opdrachtregelargumenten.
- sys.argv[0] is de naam van het huidige Python-script.
Voorbeeld: Laten we aannemen dat er een Python-script is voor het toevoegen van twee getallen en dat de getallen worden doorgegeven als opdrachtregelargumenten.
Python3
# Python program to demonstrate> # command line arguments> import> sys> # total arguments> n> => len> (sys.argv)> print> (> 'Total arguments passed:'> , n)> # Arguments passed> print> (> '
Name of Python script:'> , sys.argv[> 0> ])> print> (> '
Arguments passed:'> , end> => ' '> )> for> i> in> range> (> 1> , n):> > print> (sys.argv[i], end> => ' '> )> > # Addition of numbers> Sum> => 0> # Using argparse module> for> i> in> range> (> 1> , n):> > Sum> +> => int> (sys.argv[i])> > print> (> '
Result:'> ,> Sum> )> |
>
>
Uitgang:
Met behulp van de getopt-module
Python getopt-module is vergelijkbaar met de functie getopt() van C. In tegenstelling tot de sys-module breidt de getopt-module de scheiding van de invoerreeks uit door parametervalidatie. Het maakt zowel korte als lange opties mogelijk, inclusief een waardetoewijzing. Deze module vereist echter het gebruik van de sys-module om invoergegevens correct te verwerken. Om de getopt-module te gebruiken, is het vereist om het eerste element uit de lijst met opdrachtregelargumenten te verwijderen.
Syntaxis: getopt.getopt(args, opties, [lange_opties])
Parameters:
argumenten: Lijst met argumenten die moeten worden doorgegeven.
opties: Reeks optieletters die het script wil herkennen. Opties waarvoor een argument vereist is, moeten worden gevolgd door een dubbele punt (:).
lange_opties: Lijst met tekenreeksen met de naam van lange opties. Opties waarvoor argumenten nodig zijn, moeten worden gevolgd door een gelijkteken (=).
Retourtype: Retourneert een waarde die uit twee elementen bestaat: het eerste is een lijst met (optie, waarde)paren. De tweede is de lijst met programmaargumenten die overblijft nadat de optielijst was verwijderd.
Junit-testgevallen
Voorbeeld:
Python3
# Python program to demonstrate> # command line arguments> import> getopt, sys> # Remove 1st argument from the> # list of command line arguments> argumentList> => sys.argv[> 1> :]> # Options> options> => 'hmo:'> # Long options> long_options> => [> 'Help'> ,> 'My_file'> ,> 'Output='> ]> try> :> > # Parsing argument> > arguments, values> => getopt.getopt(argumentList, options, long_options)> > > # checking each argument> > for> currentArgument, currentValue> in> arguments:> > if> currentArgument> in> (> '-h'> ,> '--Help'> ):> > print> (> 'Displaying Help'> )> > > elif> currentArgument> in> (> '-m'> ,> '--My_file'> ):> > print> (> 'Displaying file_name:'> , sys.argv[> 0> ])> > > elif> currentArgument> in> (> '-o'> ,> '--Output'> ):> > print> ((> 'Enabling special output mode (% s)'> )> %> (currentValue))> > except> getopt.error as err:> > # output error, and return with an error code> > print> (> str> (err))> |
>
>
Uitgang:
Argparse-module gebruiken
Het gebruik van de argparse-module is een betere optie dan de twee bovenstaande opties, omdat het veel opties biedt, zoals positionele argumenten, standaardwaarde voor argumenten, helpbericht, het specificeren van het gegevenstype van het argument enz.
Opmerking: Als standaard optioneel argument bevat het -h, samen met de lange versie –help.
verbeterd voor lus-Java
Voorbeeld 1: Basisgebruik van de argparse-module.
Python3
# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser> => argparse.ArgumentParser()> parser.parse_args()> |
>
>
Uitgang:
Voorbeeld 2: Beschrijving toevoegen aan het helpbericht.
Python3
# Python program to demonstrate> # command line arguments> import> argparse> msg> => 'Adding description'> # Initialize parser> parser> => argparse.ArgumentParser(description> => msg)> parser.parse_args()> |
>
>
Uitgang:
Voorbeeld 3: Optionele waarde definiëren
Python3
ontwikkelaarsmodus uitschakelen
# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser> => argparse.ArgumentParser()> # Adding optional argument> parser.add_argument(> '-o'> ,> '--Output'> ,> help> => 'Show Output'> )> # Read arguments from command line> args> => parser.parse_args()> if> args.Output:> > print> (> 'Displaying Output as: % s'> %> args.Output)> |
>
>
Uitgang: