Hvordan analysere argumenter på kommandolinjen i Python

How Parse Arguments Command Line Python



Kommandolinjeargumentene brukes til å sende data i programmet på tidspunktet for programkjøring. Denne funksjonen er tilgjengelig på de fleste populære programmeringsspråk. Men behandlingen av kommandolinjeargumenter er forskjellig for forskjellige språk. Argumentverdiene er gitt med programnavnet på tidspunktet for programmet. Python -språk støtter denne funksjonen. Hvordan kommandolinjeargumenter analyseres i Python-skript, vises i denne artikkelen.

Analyse av kommandolinjeargument med sys modul

Kommandolinjeargumenter lagres i en liste ved hjelp av sys modul. sys.argv brukes til å lese verdiene til kommandolinjeargumentene. Det totale antallet kommandolinjeargumenter kan telles ved å bruke len () funksjon. Bruken av denne modulen er beskrevet i delen av artikkelen.







Eksempel 1: Lesing av antall argumenter og argumentverdier

Lag en fil med følgende python -skript. Her lagres kommandolinjeargumentverdiene i variabelen, argv som andre språk. len () method teller det totale antallet argumenter som ble sendt på tidspunktet for utføring av skriptet. Argumentverdier skrives ut som en matrise på slutten av skriptet.



# Importer sys -modul
import sys

# Skriv ut totalt antall argumenter
skrive ut('Totale argumenter:', len(sys.argv))
skrive ut('Argumentverdiene er:', s. s(sys.argv))

Produksjon:



Ovennevnte skript utføres her ved hjelp av fire kommandolinjeargumenter. Det første argumentet er skriptnavnet og andre er numeriske verdier. Følgende utdata vises etter at skriptet er kjørt.





Eksempel 2: Lese argumentverdier ved hjelp av løkken



I forrige eksempel skrives argumentverdier ut som en matrise. Lag en fil med følgende script for å skrive ut typen argumentvariabel og skrive ut hver argumentverdi på hver linje ved å bruke for loop.

# Importer sys -modul
import sys

# Skriv ut typen variabel, sys.argv
skrive ut(type(sys.argv))

# Skriv ut hvert kommandolinjeargument på hver linje
skrive ut('Kommandolinjeargumentene er:')
tilJegi sys.argv:
skrive ut(Jeg)

Produksjon:

Skriptet ovenfor kjøres ved å gi tre argumenter med skriptnavnet. Følgende utdata vises etter at skriptet er kjørt.

Analyse av kommandolinjeargument ved hjelp av getopt-modulen

Toppet modul brukes til å analysere kommandolinjeargumenter med alternativene. toppet () metode for denne modulen brukes til å lese argumentene. Denne metoden har tre argumenter. De to første argumentene er obligatoriske, og det siste argumentet er valgfritt. Bruken av disse argumentene er gitt nedenfor.

args: Den inneholder argumentet hentet fra kommandolinjeargumentet.

short_option: Det kan være hvilken som helst bokstav som går med argumentet.

long_option: Den brukes til å definere lange alternativer med to deler. Dette er alternativets navn og opsjonsverdi.

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

Eksempel 3: Lese argumentverdier ved hjelp av korte getopt -alternativer

toppet modulen inneholder flere funksjoner enn sys modul. Følgende eksempel viser hvordan korte alternativer kan brukes i toppet () metode. argv variabel vil lagre kommandolinjeargumentene ved å utelate skriptnavnet. Deretter er to alternativer definert i toppet () metode som kan brukes med argumentet i løpetid. Hvis det oppstår en feil, vises en feilmelding.

# Importer getopt -modul
import toppet

# Importer sys -modul
import sys

# Lagre argumentvariabel som utelater skriptnavnet
argv= sys.argv[1:]

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

# skriv ut alternativene og argumentet
skrive ut(alternativer)
skrive ut(args)

unntatt toppet.GetoptError:

# Skriv ut feilmeldingen hvis feil alternativ er gitt
skrive ut('Feil alternativ er gitt')

# Avslutt manuset
sys.exit(2)

Produksjon:

Kjør skriptet uten noen argumenter, argumenter med riktige alternativer og argumenter med feil alternativ.

Eksempel 4: Lese argumentverdier ved hjelp av korte og lange getopt -alternativer

Dette eksemplet viser hvordan både korte og lange alternativer kan brukes med argumentverdiene. Det vil legge til to tall når '-til' eller '-legge til' vil bli brukt som et alternativ og trekke fra to tall når ' -s ' eller ‘ -under' vil bli brukt som et alternativ under kjøretiden.

# Importer getopt -modul
import toppet

# Importer sys -modul
import sys

# Lagre argumentvariabel som utelater skriptnavnet
argv= sys.argv[1:]

# Initialiser resultatvariabel
resultat=0

prøve:

# Definer getopt korte og lange alternativer
alternativer,args= toppet.toppet(sys.argv[1:], 'som', ['add =','sub ='])

# Les hvert alternativ ved å bruke for loop
tilopt,sintialternativer:
# Beregn summen hvis alternativet er -a eller --tillegg
hvisopti ('-til', '--legge til'):
resultat= int(argv[1])+int(argv[2])

# Beregn suntraction hvis alternativet er -s eller --sub
elifopti ('-s', '--under'):
resultat= int(argv[1])-int(argv[2])

skrive ut('Resultat =',resultat)

unntatt toppet.GetoptError:

# Skriv ut feilmeldingen hvis feil alternativ er gitt
skrive ut('Feil alternativ er gitt')

# Avslutt manuset
sys.exit(2)

Produksjon:

Kjør skriptet uten argumenter og alternativer, argumenter med alternativet ‘-a’, argumenter med ‘-s’ og argumenter med feil alternativ.

Analyse av kommandolinjeargument ved hjelp av argparse-modul

Argparse-modulen inneholder mange alternativer for å lese kommandolinjeargumenter. Standard argumentverdier, argumentet med datatypen, posisjonelle argumenter, hjelpemelding, etc. kan gis av denne modulen.

Eksempel 5: Lese kommandolinjeargumenter ved hjelp av argparse

Følgende eksempel viser bruken av argparse modul for å lese kommandolinjeargument. Her er to alternativer definert for å lese kommandolinjeargumenter. Disse er ‘-N’ eller ‘–name’ og '-E' eller '–email'. Hvis brukeren gir et feil argument, viser det en feil med en bruksmelding. Hvis brukeren gir riktige alternativer med argumentene, vil den vise argumentverdiene. hvis brukeren kjører skriptet med '–help' -alternativet, vil det gi nødvendig melding for å kjøre skriptet.

# Importer argparse modul
importargparse

# Importer sys -modul
import sys

# Deklarere funksjon for å definere kommandolinjeargumenter
defreadOptions(args=sys.argv[1:]):
parser =argparse.ArgumentParser(beskrivelse='Parsing kommandoer lister.')
parser.add_argument('-n', '--Navn', hjelp='Skriv inn navnet ditt.')
parser.add_argument('-Og', '--post', hjelp='Skriv inn e -posten din.')
velger= parser.parse_args(args)
komme tilbakevelger

# Ring funksjonen for å lese argumentverdiene
alternativer=readOptions(sys.argv[1:])
skrive ut(alternativer.Navn)
skrive ut(alternativer.e -post)

Produksjon:

Kjør skriptet med feil alternativ, riktig alternativ og hjelpealternativ.

Konklusjon:

Ulike måter å lese kommandolinjeargumenter forklares i denne opplæringen ved å bruke tre python-moduler. Jeg håper at denne opplæringen vil hjelpe koderen som ønsker å lese data ved hjelp av kommandolinjeargumenter i python.

Se forfatterens video: her