Kaip išanalizuoti argumentus komandinėje eilutėje „Python“

How Parse Arguments Command Line Python



Komandinės eilutės argumentai naudojami duomenims perduoti programoje programos vykdymo metu. Ši funkcija prieinama daugelyje populiarių programavimo kalbų. Tačiau komandų eilutės argumentų apdorojimas skirtingoms kalboms yra skirtingas. Argumentų reikšmės pateikiamos kartu su programos pavadinimu programos paleidimo metu. „Python“ kalba palaiko šią funkciją. Šiame straipsnyje parodyta, kaip komandinės eilutės argumentai analizuojami „Python“ scenarijuje.

Analizuojamas komandinės eilutės argumentas naudojant sys modulis

Komandinės eilutės argumentai saugomi sąraše naudojant sys modulis. sys.argv naudojamas komandinės eilutės argumentų reikšmėms skaityti. Bendras komandinės eilutės argumentų skaičius gali būti suskaičiuotas naudojant len () funkcija. Šio modulio naudojimas aprašytas straipsnio dalyje.







1 pavyzdys: argumentų skaičiaus ir argumentų reikšmių skaitymas

Sukurkite failą naudodami šį „python“ scenarijų. Čia komandinės eilutės argumentų reikšmės saugomos kintamajame, argv kaip ir kitos kalbos. len () metodas skaičiuoja bendrą argumentų skaičių, pateiktą scenarijaus vykdymo metu. Argumentų reikšmės spausdinamos kaip masyvas scenarijaus pabaigoje.



# Importuoti sys modulį
importas sys

# Spausdinkite bendrą argumentų skaičių
spausdinti(„Visi argumentai:“, len(sys.argv))
spausdinti(„Argumentų vertės yra šios:“, p(sys.argv))

Išėjimas:



Aukščiau pateiktas scenarijus čia vykdomas naudojant keturis komandinės eilutės argumentus. Pirmasis argumentas yra scenarijaus pavadinimas, o kiti - skaitinės vertės. Paleidus scenarijų pasirodys ši išvestis.





2 pavyzdys: argumentų reikšmių skaitymas naudojant kilpą



Ankstesniame pavyzdyje argumentų reikšmės spausdinamos kaip masyvas. Sukurkite failą naudodami šį scenarijų, kad išspausdintumėte argumento kintamojo tipą, ir atspausdinkite kiekvieną argumento reikšmę kiekvienoje eilutėje naudodami ciklą.

# Importuoti sys modulį
importas sys

# Atspausdinkite kintamojo tipą sys.argv
spausdinti(tipo(sys.argv))

# Spausdinkite kiekvieną komandinės eilutės argumentą kiekvienoje eilutėje
spausdinti(„Komandinės eilutės argumentai yra šie:“)
dėliį sys.argv:
spausdinti(i)

Išėjimas:

Aukščiau pateiktas scenarijus vykdomas pateikiant tris argumentus su scenarijaus pavadinimu. Paleidus scenarijų pasirodys ši išvestis.

Analizuojamas komandinės eilutės argumentas naudojant „getopt“ modulį

Į viršų modulis naudojamas analizuoti komandinės eilutės argumentus su parinktimis. viršuje () šio modulio metodas naudojamas argumentams skaityti. Šis metodas turi tris argumentus. Pirmieji du argumentai yra privalomi, o paskutiniai - neprivalomi. Šių argumentų panaudojimas pateiktas toliau.

argas: Jame yra argumentas, paimtas iš komandinės eilutės argumento.

short_option: Tai gali būti bet kuri raidė, kuri yra kartu su argumentu.

long_option: Jis naudojamas apibrėžti ilgas parinktis iš dviejų dalių. Tai yra parinkties pavadinimas ir parinkties vertė.

Sintaksė: getopt.getopt (args, short_option, [long_option])

3 pavyzdys: argumentų reikšmių skaitymas naudojant trumpas „getopt“ parinktis

viršūnėje modulyje yra daugiau funkcijų nei sys modulis. Šis pavyzdys parodo, kaip galima naudoti trumpas parinktis viršuje () metodas. argv kintamasis išsaugos komandinės eilutės argumentus, praleisdamas scenarijaus pavadinimą. Toliau skiltyje apibrėžtos dvi parinktys viršuje () metodas, kuris gali būti naudojamas su argumentu vykdymo metu. Jei įvyksta kokia nors klaida, bus rodomas klaidos pranešimas.

# Importuoti „getopt“ modulį
importas viršūnėje

# Importuoti sys modulį
importas sys

# Saugokite argumentų kintamąjį, praleisdami scenarijaus pavadinimą
argv= sys.argv[1:]

bandyti:
# Apibrėžkite gautas trumpas parinktis
galimybės,args= viršūnėje.viršūnėje(argv, 'x: y:')

# atspausdinkite parinktis ir argumentus
spausdinti(galimybės)
spausdinti(args)

išskyrus viršūnėje.„GetoptError“:

# Atspausdinkite klaidos pranešimą, jei pateikiama netinkama parinktis
spausdinti(„Pateiktas neteisingas variantas“)

# Nutraukite scenarijų
sys.išeiti(2)

Išėjimas:

Paleiskite scenarijų be jokių argumentų, argumentų su teisingomis parinktimis ir argumentų su netinkama parinktimi.

4 pavyzdys: argumentų reikšmių skaitymas naudojant trumpas ir ilgas gavimo parinktis

Šis pavyzdys parodo, kaip trumposios ir ilgosios parinktys gali būti naudojamos su argumentų reikšmėmis. Kai jis pridės du skaičius „iki“ arba '-papildyti' bus naudojamas kaip parinktis ir atims du skaičius, kai -“ arba „ - sub ' vykdymo metu bus naudojamas kaip pasirinkimas.

# Importuoti „getopt“ modulį
importas viršūnėje

# Importuoti sys modulį
importas sys

# Saugokite argumentų kintamąjį, praleisdami scenarijaus pavadinimą
argv= sys.argv[1:]

# Inicijuoti rezultato kintamąjį
rezultatas=0

bandyti:

# Apibrėžkite geriausias trumpas ir ilgas parinktis
galimybės,args= viršūnėje.viršūnėje(sys.argv[1:], a: s, ['pridėti =','sub ='])

# Perskaitykite kiekvieną parinktį naudodami ciklą
dėlpasirinkti,piktasįgalimybės:
# Apskaičiuokite sumą, jei parinktis yra -a arba --add
jeipasirinktiį („iki“, '--papildyti'):
rezultatas= tarpt(argv[1])+tarpt(argv[2])

# Apskaičiuokite sumažinimą, jei parinktis yra -s arba --sub
elifaspasirinktiį („-s“, „-sub“):
rezultatas= tarpt(argv[1])-tarpt(argv[2])

spausdinti('Rezultatas =',rezultatas)

išskyrus viršūnėje.„GetoptError“:

# Atspausdinkite klaidos pranešimą, jei pateikiama netinkama parinktis
spausdinti(„Pateiktas neteisingas variantas“)

# Nutraukite scenarijų
sys.išeiti(2)

Išėjimas:

Paleiskite scenarijų be jokių argumentų ir parinkčių, argumentų su „-a“ parinktimi, argumentais su „-s“ ir argumentais su netinkama parinktimi.

Analizuojamas komandinės eilutės argumentas naudojant „argparse“ modulį

„Argparse“ modulyje yra daug komandų eilutės argumentų skaitymo parinkčių. Šis modulis gali pateikti numatytas argumentų reikšmes, argumentą su duomenų tipu, pozicinius argumentus, pagalbos pranešimą ir kt.

5 pavyzdys: komandinės eilutės argumentų skaitymas naudojant argparse

Šis pavyzdys parodo, kaip naudoti argparse komandų eilutės argumentų skaitymo modulis. Čia yra apibrėžtos dvi komandinės eilutės argumentų skaitymo parinktys. Šitie yra „-N“ arba „–vardas“ ir „-E“ arba „–paštas“. Jei vartotojas pateikia neteisingą argumentą, jis parodys klaidą su naudojimo pranešimu. Jei vartotojas pateikia teisingas parinktis su argumentais, jis parodys argumentų reikšmes. jei vartotojas paleidžia scenarijų su „–help“ parinktimi, jis pateiks būtiną pranešimą scenarijui paleisti.

# Importuoti argparse modulį
importasargparse

# Importuoti sys modulį
importas sys

# Deklaravimo funkcija komandų eilutės argumentams apibrėžti
defreadOptions(args=sys.argv[1:]):
analizatorius =argparse.ArgumentParser(apibūdinimas=„Analizavimo komandų sąrašai“.)
analizatorius.add_argument('-n', '--vardas', padėti=„Įveskite savo vardą“.)
analizatorius.add_argument('' Ir '', '-paštas', padėti=„Įveskite savo el. Pašto adresą“.)
pasirenka= analizatorius.parse_args(args)
grįžtipasirenka

# Paskambinkite funkcijai, kad nuskaitytų argumentų reikšmes
galimybės=readOptions(sys.argv[1:])
spausdinti(galimybės.vardas)
spausdinti(galimybės.paštą)

Išėjimas:

Paleiskite scenarijų naudodami neteisingą parinktį, teisingą parinktį ir pagalbos parinktį.

Išvada:

Šiame vadove aprašomi įvairūs komandinės eilutės argumentų skaitymo būdai, naudojant tris „python“ modulius. Tikiuosi, ši pamoka padės koduotojui, norinčiam skaityti duomenis naudojant komandinės eilutės argumentus „python“.

Žiūrėkite autoriaus vaizdo įrašą: čia