Python

Hvordan analysere argumenter på kommandolinjen i Python

Hvordan analysere argumenter på kommandolinjen i Python
Kommandolinjeargumentene brukes til å overføre data i programmet på tidspunktet for programutførelse. Denne funksjonen er tilgjengelig på de fleste av de populære programmeringsspråkene. Men behandlingen av kommandolinjeargumenter er forskjellig for forskjellige språk. Argumentverdiene er gitt med programnavnet når programmet kjøres. Pythonspråk støtter denne funksjonen. Hvordan kommandolinjeargumenter blir analysert i Python-skript, vises i denne artikkelen.

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-modul
importer 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-modul
importer 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-modul
import 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-modul
import 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 modul
importer 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

Kamp for Wesnoth 1.1. 3.6 Utvikling utgitt
Kamp for Wesnoth 1.1. 3.6 utgitt i forrige måned, er den sjette utgivelsen i 1.1. 3.x-serien, og den leverer en rekke forbedringer, spesielt til bruke...
Slik installerer du League Of Legends på Ubuntu 14.04
Hvis du er fan av League of Legends, er dette en mulighet for deg å prøvekjør League of Legends. Merk at LOL støttes på PlayOnLinux hvis du er en linu...
Installer det siste OpenRA-strategispillet på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spillmotor som gjenskaper de tidlige Westwood-spillene som den klassiske Command & Conquer: Red Alert. Di...