logo

Kommandolinjeargumenter i Python

Argumentene som er gitt etter navnet på programmet i kommandolinjeskallet til operativsystemet er kjent som Kommandolinjeargumenter . Python gir ulike måter å håndtere denne typen argumenter på. De tre vanligste er:

Ved å bruke sys.argv

Sys-modulen gir funksjoner og variabler som brukes til å manipulere forskjellige deler av Python-kjøringsmiljøet. Denne modulen gir tilgang til noen variabler som brukes eller vedlikeholdes av tolken og til funksjoner som samhandler sterkt med tolken.
En slik variabel er sys.argv som er en enkel listestruktur. Hovedformålet er:



  • Det er en liste over kommandolinjeargumenter.
  • len(sys.argv) gir antall kommandolinjeargumenter.
  • sys.argv[0] er navnet på det gjeldende Python-skriptet.

Eksempel: La oss anta at det er et Python-skript for å legge til to tall og tallene sendes som kommandolinjeargumenter.

Python3








# Python program to demonstrate> # command line arguments> import> sys> # total arguments> n>=> len>(sys.argv)> print>(>'Total arguments passed:'>, n)> # Arguments passed> print>(>' Name of Python script:'>, sys.argv[>0>])> print>(>' Arguments passed:'>, end>=> ' '>)> for> i>in> range>(>1>, n):> >print>(sys.argv[i], end>=> ' '>)> > # Addition of numbers> Sum> => 0> # Using argparse module> for> i>in> range>(>1>, n):> >Sum> +>=> int>(sys.argv[i])> > print>(>' Result:'>,>Sum>)>

>

>

Produksjon:

python-kommandolinje-argumenter

Bruker getopt-modulen

Python getopt-modul ligner på getopt()-funksjonen til C. I motsetning til sys-modulen utvider getopt-modulen separasjonen av inngangsstrengen ved parametervalidering. Det tillater både korte og lange alternativer, inkludert en verditilordning. Denne modulen krever imidlertid bruk av sys-modulen for å behandle inndata på riktig måte. For å bruke getopt-modulen, er det nødvendig å fjerne det første elementet fra listen over kommandolinjeargumenter.

Syntaks: getopt.getopt(args, alternativer, [lange_alternativer])
Parametere:
args: Liste over argumenter som skal vedtas.
alternativer: En streng med alternativbokstaver som skriptet ønsker å gjenkjenne. Alternativer som krever et argument skal etterfølges av et kolon (:).
lange_alternativer: Liste over strenger med navn på lange alternativer. Alternativer som krever argumenter skal etterfølges av et likhetstegn (=).
Returtype: Returnerer verdi som består av to elementer: det første er en liste over (alternativ, verdi) par. Den andre er listen over programargumenter som er igjen etter at alternativlisten ble fjernet.

slf4j vs log4j

Eksempel:

Python3




# Python program to demonstrate> # command line arguments> import> getopt, sys> # Remove 1st argument from the> # list of command line arguments> argumentList>=> sys.argv[>1>:]> # Options> options>=> 'hmo:'> # Long options> long_options>=> [>'Help'>,>'My_file'>,>'Output='>]> try>:> ># Parsing argument> >arguments, values>=> getopt.getopt(argumentList, options, long_options)> > ># checking each argument> >for> currentArgument, currentValue>in> arguments:> >if> currentArgument>in> (>'-h'>,>'--Help'>):> >print> (>'Displaying Help'>)> > >elif> currentArgument>in> (>'-m'>,>'--My_file'>):> >print> (>'Displaying file_name:'>, sys.argv[>0>])> > >elif> currentArgument>in> (>'-o'>,>'--Output'>):> >print> ((>'Enabling special output mode (% s)'>)>%> (currentValue))> > except> getopt.error as err:> ># output error, and return with an error code> >print> (>str>(err))>

>

>

Produksjon:

python-kommandolinje-argumenter

Bruker argparse-modulen

Å bruke argparse-modulen er et bedre alternativ enn de to ovennevnte alternativene, da det gir mange alternativer som posisjonsargumenter, standardverdi for argumenter, hjelpemelding, spesifisering av datatype argument etc.

Merk: Som et standard valgfritt argument inkluderer det -h, sammen med sin lange versjon -help.

32 bit arkitektur vs 64 bit

Eksempel 1: Grunnleggende bruk av argparse-modulen.

Python3




# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser>=> argparse.ArgumentParser()> parser.parse_args()>

>

>

Produksjon:

python-kommandolinje-argumenter


Eksempel 2: Legger til beskrivelse i hjelpemeldingen.

Python3


streng til int konvertering i java



# Python program to demonstrate> # command line arguments> import> argparse> msg>=> 'Adding description'> # Initialize parser> parser>=> argparse.ArgumentParser(description>=> msg)> parser.parse_args()>

>

>

Produksjon:

python-kommandolinje-argumenter


Eksempel 3: Definere valgfri verdi

Python3




# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser>=> argparse.ArgumentParser()> # Adding optional argument> parser.add_argument(>'-o'>,>'--Output'>,>help> => 'Show Output'>)> # Read arguments from command line> args>=> parser.parse_args()> if> args.Output:> >print>(>'Displaying Output as: % s'> %> args.Output)>

>

>

Produksjon:

python-kommandolinje-argumenter