Sådan analyseres argumenter på kommandolinjen i Python

How Parse Arguments Command Line Python



Kommandolinjeargumenterne bruges til at videregive data i programmet på tidspunktet for programkørsel. Denne funktion er tilgængelig på de fleste af de populære programmeringssprog. Men behandlingen af ​​kommandolinjeargumenter er forskellig for forskellige sprog. Argumentværdierne er givet med programnavnet på tidspunktet for programmets kørsel. Python -sprog understøtter denne funktion. Hvordan kommandolinjeargumenter analyseres i Python-script, vises i denne artikel.

Analyse af kommandolinjeargument ved hjælp af sys modul

Kommandolinjeargumenter lagres på en liste vha sys modul. sys.argv bruges til at læse værdierne for kommandolinjeargumenterne. Det samlede antal kommandolinjeargumenter kan tælles ved hjælp af len () fungere. Brugen af ​​dette modul er beskrevet i artiklens del.







Eksempel 1: Læsning af antallet af argumenter og argumentværdier

Opret en fil med følgende python -script. Her gemmes kommandolinjeargumentværdierne i variablen, argv ligesom andre sprog. len () metode tæller det samlede antal argumenter, der blev sendt på tidspunktet for udførelsen af ​​scriptet. Argumentværdier udskrives som en matrix i slutningen af ​​scriptet.



# Importer sys -modul
importere sys

# Udskriv det samlede antal argumenter
Print('Samlede argumenter:', len(sys.argv))
Print('Argumentværdierne er:', s(sys.argv))

Produktion:



Ovenstående script udføres her ved hjælp af fire kommandolinjeargumenter. Det første argument er scriptnavnet, og andre er numeriske værdier. Følgende output vises efter at scriptet er kørt.





Eksempel 2: Læsning af argumentværdier ved hjælp af sløjfen



I det foregående eksempel udskrives argumentværdier som et array. Opret en fil med følgende script for at udskrive typen af ​​argumentvariabel og udskrive hver argumentværdi i hver linje ved hjælp af for loop.

# Importer sys -modul
importere sys

# Udskriv variabelens type, sys.argv
Print(type(sys.argv))

# Udskriv hvert kommandolinjeargument i hver linje
Print('Kommandolinjeargumenterne er:')
tiljegi sys.argv:
Print(jeg)

Produktion:

Ovenstående script udføres ved at angive scriptnavnet tre argumenter. Følgende output vises efter at scriptet er kørt.

Analyse af kommandolinjeargument ved hjælp af getopt-modul

Toppet modul bruges til at analysere kommandolinjeargumenter med mulighederne. toppet () metode til dette modul bruges til at læse argumenterne. Denne metode har tre argumenter. De to første argumenter er obligatoriske, og det sidste argument er valgfrit. Anvendelsen af ​​disse argumenter er angivet nedenfor.

args: Den indeholder argumentet taget fra kommandolinjeargumentet.

short_option: Det kan være ethvert bogstav, der passerer med argumentet.

long_option: Det bruges til at definere lange muligheder med to dele. Disse er optionens navn og optionens værdi.

Syntaks: getopt.getopt (args, short_option, [long_option])

Eksempel 3: Læsning af argumentværdier ved hjælp af korte getopt -muligheder

toppet modul indeholder flere funktioner end sys modul. Følgende eksempel viser, hvordan korte muligheder kan bruges i toppet () metode. argv variabel gemmer kommandolinjeargumenterne ved at udelade scriptnavnet. Dernæst defineres to muligheder i toppet () metode, der kan bruges med argumentet i løbetiden. Hvis der opstår en fejl, vises en fejlmeddelelse.

# Importer getopt -modul
importere toppet

# Importer sys -modul
importere sys

# Gem argumentvariabel, der udelader scriptnavnet
argv= sys.argv[1:]

prøve:
# Definer getopt korte muligheder
muligheder,args= toppet.toppet(argv, 'x: y:')

# udskriv mulighederne og argumentet
Print(muligheder)
Print(args)

undtagen toppet.GetoptError:

# Udskriv fejlmeddelelsen, hvis den forkerte mulighed er angivet
Print('Den forkerte mulighed er angivet')

# Afslut scriptet
sys.Afslut(2)

Produktion:

Kør scriptet uden argumenter, argumenter med korrekte muligheder og argumenter med den forkerte mulighed.

Eksempel 4: Læsning af argumentværdier ved hjælp af korte og lange getopt -muligheder

Dette eksempel viser, hvordan både korte og lange muligheder kan bruges med argumentværdierne. Det tilføjer to tal, når '-til' eller '-tilføje' vil blive brugt som en mulighed og trække to tal fra, når ' -s ’ eller ’ –Sub ’ vil blive brugt som en mulighed i løbetiden.

# Importer getopt -modul
importere toppet

# Importer sys -modul
importere sys

# Gem argumentvariabel, der udelader scriptnavnet
argv= sys.argv[1:]

# Initialiser resultatvariabel
resultat=0

prøve:

# Definer getopt korte og lange muligheder
muligheder,args= toppet.toppet(sys.argv[1:], 'som', ['tilføj =','sub ='])

# Læs hver mulighed ved hjælp af for loop
tilvælg,vredimuligheder:
# Beregn summen, hvis indstillingen er -a eller -tilføj
hvisvælgi ('-til', '--tilføje'):
resultat= int(argv[1])+int(argv[2])

# Beregn suntraktionen, hvis indstillingen er -s eller --sub
elifvælgi ('-s', '-sub'):
resultat= int(argv[1])-int(argv[2])

Print('Resultat =',resultat)

undtagen toppet.GetoptError:

# Udskriv fejlmeddelelsen, hvis den forkerte mulighed er angivet
Print('Den forkerte mulighed er angivet')

# Afslut scriptet
sys.Afslut(2)

Produktion:

Kør scriptet uden argumenter og muligheder, argumenter med '-a', argumenter med '-s' og argumenter med den forkerte mulighed.

Analyse af kommandolinjeargument ved hjælp af argparse-modul

Argparse-modul indeholder masser af muligheder for at læse kommandolinjeargumenter. Standardargumentværdier, argumentet med datatypen, positionelle argumenter, hjælpemeddelelse osv. Kan leveres af dette modul.

Eksempel 5: Læsning af kommandolinjeargumenter ved hjælp af argparse

Følgende eksempel viser brugen af argparse modul til læsning af kommandolinjeargument. Her er to muligheder defineret til læsning af kommandolinjeargumenter. Disse er ‘-N’ eller ‘–name’ og '-E' eller '–email'. Hvis brugeren giver et forkert argument, viser det en fejl med en brugsmeddelelse. Hvis brugeren giver de korrekte muligheder med argumenterne, viser den argumentværdierne. hvis brugeren kører scriptet med ‘–help’, så giver det den nødvendige meddelelse for at køre scriptet.

# Importer argparse modul
importereargparse

# Importer sys -modul
importere sys

# Deklarer funktion for at definere kommandolinjeargumenter
defreadOptions(args=sys.argv[1:]):
parser =argparse.ArgumentParser(beskrivelse='Parsing kommandoer lister.')
parser.tilføj_argument('-n', '--navn', Hjælp='Skriv dit navn.')
parser.tilføj_argument('-Og', '-mail', Hjælp='Indtast din e -mail.')
vælger= parser.parse_args(args)
Vend tilbagevælger

# Ring til funktionen for at læse argumentværdierne
muligheder=readOptions(sys.argv[1:])
Print(muligheder.navn)
Print(muligheder.e -mail)

Produktion:

Kør scriptet med forkert mulighed, korrekt indstilling og hjælpemulighed.

Konklusion:

Forskellige måder at læse kommandolinjeargumenter på forklares i denne vejledning ved hjælp af tre python-moduler. Jeg håber, at denne vejledning hjælper coder, der ønsker at læse data ved hjælp af kommandolinjeargumenter i python.

Se forfatterens video: her