Python

Sådan analyseres argumenter på kommandolinjen i Python

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

Analyse af kommandolinjeargument ved hjælp af sys modul

Kommandolinjeargumenter gemmes på en liste ved hjælp af 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 artiklen.

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

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

# Importer sys-modul
importer sys
# Udskriv det samlede antal argumenter
print ('Argumenter i alt:', len (sys.argv))
print ('Argumentværdierne er:', str (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 kørsel af scriptet.

Eksempel 2: Læsning af argumentværdier ved hjælp af loop

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

# Importer sys-modul
importer sys
# Udskriv typen af ​​variablen sys.argv
udskriv (type (sys.argv))
# Udskriv hvert kommandolinjeargument på hver linje
print ('Kommandolinjeargumenterne er:')
for jeg i sys.argv:
udskrive (i)

Produktion:

Ovenstående script udføres ved at give tre argumenter med scriptnavnet. Følgende output vises efter kørsel af scriptet.

Analyse af kommandolinjeargument ved hjælp af getopt-modul

Getopt modul bruges til at analysere kommandolinjeargumenter med indstillingerne. getopt () 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 valgfri. Anvendelsen af ​​disse argumenter er angivet nedenfor.

argumenterer: Den indeholder argumentet fra kommandolinjeargumentet.

kort_option: Det kan være ethvert bogstav, der passer med argumentet.

lang_option: Det bruges til at definere lange muligheder med to dele. Disse er indstillingsnavnet og indstillingsværdien.

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

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

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

# Importer getopt-modul
import getopt
# Importer sys-modul
importer sys
# Store argumentvariabel, der udelader scriptnavnet
argv = sys.argv [1:]
 
prøve:
# Definer getopt korte muligheder
optioner, args = getopt.getopt (argv, 'x: y:')
# udskriv indstillingerne og argumentet
udskriv (valgmuligheder)
print (args)
 
undtagen getopt.GetoptError:
# Udskriv fejlmeddelelsen, hvis den forkerte mulighed er angivet
print ('Den forkerte mulighed er angivet')
# Afslut scriptet
sys.udgang (2)

Produktion:

Kør scriptet uden noget argument, argumenter med korrekte indstillinger og argumenter med den forkerte mulighed.

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

Dette eksempel viser, hvordan både korte og lange indstillinger kan bruges med argumentværdierne. Det tilføjer to tal, hvornår '-en' eller '-tilføje' vil blive brugt som en mulighed og trække to tal, når '-s ' eller '-under ' vil blive brugt som en mulighed i løbetid.

# Importer getopt-modul
import getopt
# Importer sys-modul
importer sys
# Store argumentvariabel, der udelader scriptnavnet
argv = sys.argv [1:]
# Initialiser resultatvariabel
resultat = 0
 
prøve:
 
# Definer getopt korte og lange muligheder
optioner, args = getopt.getopt (sys.argv [1:], 'a: s', ['add =', 'sub ='])
 
# Læs hver indstilling ved hjælp af for loop
for opt, arg i valgmuligheder:
# Beregn summen, hvis indstillingen er -a eller --add
hvis opt in ('-a', '--add'):
resultat = int (argv [1]) + int (argv [2])
# Beregn soltrækket, hvis indstillingen er -s eller --sub
elif opt in ('-s', '--sub'):
resultat = int (argv [1]) - int (argv [2])
 
print ('Resultat =', resultat)
undtagen getopt.GetoptError:
# Udskriv fejlmeddelelsen, hvis den forkerte mulighed er angivet
print ('Den forkerte mulighed er angivet')
# Afslut scriptet
sys.udgang (2)

Produktion:

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

Analyse af kommandolinjeargument ved hjælp af argparse-modul

Argparse-modul indeholder mange 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 defineres to muligheder for 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 korrekte indstillinger med argumenterne, vises argumentværdierne. hvis brugeren kører scriptet med '-help' mulighed, vil det give den nødvendige besked for at køre scriptet.

# Importer argparse modul
import argparse
# Importer sys-modul
importer sys
# Erklær funktion til at definere kommandolinjeargumenter
def readOptions (args = sys.argv [1:]):
parser = argparse.ArgumentParser (beskrivelse = "Parsingkommandolisterne.")
parser.add_argument ("- n", "--name", help = "Indtast dit navn.")
parser.add_argument ("- e", "--email", help = "Indtast din e-mail.")
opts = parser.parse_args (args)
tilbagevenden vælger
# Ring til funktionen for at læse argumentværdierne
optioner = readOptions (sys.argv [1:])
udskrive (valgmuligheder.navn)
udskriv (valgmuligheder.e-mail)

Produktion:

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

Konklusion:

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

Se forfatterens video: her

Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...
Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...
Mus Midterste museknap fungerer ikke i Windows 10
Midterste museknap fungerer ikke i Windows 10
Det midterste museknap hjælper dig med at rulle gennem lange websider og skærme med en masse data. Hvis det stopper, vil du ende med at bruge tastatur...