logo

Komandinės eilutės argumentai Python

Argumentai, pateikiami po programos pavadinimo operacinės sistemos komandų eilutės apvalkale, yra žinomi kaip Komandinės eilutės argumentai . Python siūlo įvairius būdus, kaip elgtis su tokio tipo argumentais. Trys dažniausiai yra:

Naudojant sys.argv

Sys modulis teikia funkcijas ir kintamuosius, naudojamus įvairioms Python vykdymo aplinkos dalims valdyti. Šis modulis suteikia prieigą prie kai kurių vertėjo naudojamų ar palaikomų kintamųjų ir funkcijų, kurios stipriai sąveikauja su vertėju.
Vienas iš tokių kintamųjų yra sys.argv, kuri yra paprasta sąrašo struktūra. Pagrindinis jo tikslas yra:



  • Tai yra komandinės eilutės argumentų sąrašas.
  • len(sys.argv) pateikia komandinės eilutės argumentų skaičių.
  • sys.argv[0] yra dabartinio Python scenarijaus pavadinimas.

Pavyzdys: Tarkime, kad yra Python scenarijus, skirtas pridėti du skaičius, o skaičiai perduodami kaip komandinės eilutės argumentai.

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>)>

>

>

Išvestis:

python-komandinės eilutės argumentai

Naudojant getopt modulį

Python getopt modulis yra panašus į getopt() funkciją C. Skirtingai nuo sys modulio, getopt modulis praplečia įvesties eilutės atskyrimą parametrų patvirtinimu. Tai leidžia naudoti tiek trumpas, tiek ilgas parinktis, įskaitant vertės priskyrimą. Tačiau norint tinkamai apdoroti įvesties duomenis, šiam moduliui reikia naudoti sys modulį. Norint naudoti getopt modulį, reikia pašalinti pirmąjį elementą iš komandinės eilutės argumentų sąrašo.

Sintaksė: getopt.getopt(args, options, [long_options])
Parametrai:
args: Argumentų, kuriuos reikia perduoti, sąrašas.
galimybės: Parinkčių raidžių eilutė, kurią scenarijus nori atpažinti. Po parinkčių, kurioms reikalingas argumentas, reikia rašyti dvitaškį (:).
long_options: Eilučių sąrašas su ilgų parinkčių pavadinimais. Po parinkčių, kurioms reikalingi argumentai, turėtų būti lygybės ženklas (=).
Grąžinimo tipas: Grąžina vertę, susidedančią iš dviejų elementų: pirmasis yra (parinkties, vertės) porų sąrašas. Antrasis yra programos argumentų, likusių po to, kai parinkčių sąrašas buvo pašalintas, sąrašas.

„Linux“ užduočių tvarkyklė

Pavyzdys:

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))>

>

kodėl java nepakeičiama eilutė

>

Išvestis:

python-komandinės eilutės argumentai

Naudojant argparse modulį

Naudoti argparse modulį yra geresnė parinktis nei pirmiau minėtos dvi parinktys, nes jame yra daug parinkčių, tokių kaip padėties argumentai, numatytoji argumentų reikšmė, pagalbos pranešimas, argumento duomenų tipo nurodymas ir kt.

Pastaba: Kaip numatytasis pasirenkamas argumentas, jame yra -h kartu su ilga versija -help.

1 pavyzdys: Pagrindinis argparse modulio naudojimas.

Python3




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

>

>

Išvestis:

python-komandinės eilutės argumentai


2 pavyzdys: Prie pagalbos pranešimo pridedamas aprašymas.

Python3




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

>

krūva ir krūva rūšiuoti

>

Išvestis:

python-komandinės eilutės argumentai


3 pavyzdys: Neprivalomos vertės apibrėžimas

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)>

>

>

Išvestis:

python-komandinės eilutės argumentai