Analyse av kommandolinjeargumentet ved hjelp av sys modul
Kommandolinjeargumenter lagres i en liste ved hjelp av sys modul. sys.argv brukes til å lese verdiene til kommandolinjeargumentene. Totalt antall kommandolinjeargumenter kan telles ved hjelp av len () funksjon. Bruken av denne modulen er beskrevet i delen av artikkelen.
Eksempel 1: Lesing av antall argumenter og argumentverdier
Opprett en fil med følgende python-skript. Her lagres argumentverdiene for kommandolinjen i variabelen, argv som andre språk. len () metoden teller det totale antallet argumenter som ble sendt da skriptet ble utført. Argumentverdier skrives ut som en matrise på slutten av skriptet.
# Importer sys-modulimporter sys
# Skriv ut totalt antall argumenter
print ('Total argumenter:', len (sys.argv))
print ('Argumentverdiene er:', str (sys.argv))
Produksjon:
Ovenstående 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 kjøring av skriptet.
Eksempel 2: Les argumentverdier ved hjelp av loop
I forrige eksempel skrives argumentverdier ut som en matrise. Opprett en fil med følgende skript for å skrive ut typen argumentvariabel og skrive ut hver argumentverdi på hver linje ved hjelp av for loop.
# Importer sys-modulimporter sys
# Skriv ut typen variabel, sys.argv
skriv ut (type (sys.argv))
# Skriv ut hvert kommandolinjeargument på hver linje
print ('Kommandolinjeargumentene er:')
for jeg i sys.argv:
skrive ut (i)
Produksjon:
Ovenstående skript utføres ved å gi tre argumenter med skriptnavnet. Følgende utdata vises etter kjøring av skriptet.
Analyse av kommandolinjeargumentet ved hjelp av getopt-modulen
Getopt modulen brukes til å analysere kommandolinjeargumenter med alternativene. getopt () metoden 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.
argumenterer: Den inneholder argumentet hentet fra kommandolinjeargumentet.
short_option: Det kan være hvilken som helst bokstav som passer med argumentet.
lang_alternativ: Den brukes til å definere lange alternativer med to deler. Dette er alternativnavnet og alternativverdien.
Syntaks: getopt.getopt (args, short_option, [long_option])
Eksempel 3: Les argumentverdier ved hjelp av korte getopt-alternativer
getopt inneholder flere funksjoner enn sys modul. Følgende eksempel viser hvordan korte alternativer kan brukes i getopt () metode. argv variabel lagrer kommandolinjeargumentene ved å utelate skriptnavnet. Deretter er to alternativer definert i getopt () metode som kan brukes med argumentet på kjøretiden. Hvis det oppstår en feil, vises en feilmelding.
# Importer getopt-modulimport getopt
# Importer sys-modul
importer sys
# Store argumentvariabel som utelater skriptnavnet
argv = sys.argv [1:]
prøve:
# Definer getopt korte alternativer
opsjoner, args = getopt.getopt (argv, 'x: y:')
# skriv ut alternativene og argumentet
skriv ut (opsjoner)
skriv ut (args)
bortsett fra getopt.GetoptError:
# Skriv ut feilmeldingen hvis feil alternativ er gitt
skriv ut ('Feil alternativ er gitt')
# Avslutt skriptet
sys.utgang (2)
Produksjon:
Kjør skriptet uten argument, argumenter med riktige alternativer og argumenter med feil alternativ.
Eksempel 4: Les 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 '-en' 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 i løpetiden.
# Importer getopt-modulimport getopt
# Importer sys-modul
importer sys
# Store argumentvariabel som utelater skriptnavnet
argv = sys.argv [1:]
# Initialiser resultatvariabelen
resultat = 0
prøve:
# Definer getopt korte og lange alternativer
opsjoner, args = getopt.getopt (sys.argv [1:], 'a: s', ['add =', 'sub ='])
# Les hvert alternativ ved hjelp av for loop
for opt, arg i alternativer:
# Beregn summen hvis alternativet er -a eller --add
hvis opt in ('-a', '--add'):
resultat = int (argv [1]) + int (argv [2])
# Beregn soltaket hvis alternativet er -s eller --sub
elif opt in ('-s', '--sub'):
resultat = int (argv [1]) - int (argv [2])
skriv ut ('Resultat =', resultat)
bortsett fra getopt.GetoptError:
# Skriv ut feilmeldingen hvis feil alternativ er gitt
skriv ut ('Feil alternativ er gitt')
# Avslutt skriptet
sys.utgang (2)
Produksjon:
Kjør skriptet uten argumenter og alternativer, argumenter med alternativet '-a', argumenter med alternativet '-s' og argumenter med feil alternativ.
Analyse av kommandolinjeargumentet ved hjelp av argparse-modulen
Argparse-modulen inneholder mange alternativer for å lese argumenter for kommandolinjen. Standardverdier for argument, argumentet med datatypen, posisjonsargumenter, hjelpemelding osv. kan leveres av denne modulen.
Eksempel 5: Les kommandolinjeargumenter ved hjelp av argparse
Følgende eksempel viser bruken av argparse modul for lesing av kommandolinjeargument. Her er to alternativer definert for å lese kommandolinjeargumenter. Disse er '-n' eller '-name' og '-e' eller '-email'. Hvis brukeren gir noe galt argument, vil det vise 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 modulimporter argparse
# Importer sys-modul
importer sys
# Erklær funksjon for å definere kommandolinjeargumenter
def readOptions (args = sys.argv [1:]):
parser = argparse.ArgumentParser (beskrivelse = "Parsingkommandolistene.")
parser.add_argument ("- n", "--name", help = "Skriv inn navnet ditt.")
parser.add_argument ("- e", "--email", help = "Skriv inn e-postadressen din.")
opts = parser.parse_args (args)
retur velger
# Ring funksjonen for å lese argumentverdiene
alternativer = readOptions (sys.argv [1:])
skriv ut (opsjoner.Navn)
skriv ut (opsjoner.e-post)
Produksjon:
Kjør skriptet med feil alternativ, riktig alternativ og hjelpealternativ.
Konklusjon:
Ulike måter å lese argumenter på kommandolinjen forklares i denne veiledningen ved hjelp av tre python-moduler. Jeg håper, denne opplæringen vil hjelpe koderen som vil lese data ved hjelp av kommandolinjeargumenter i python.
Se forfatterens video: her