„Python“

Kaip pridėti komandinės eilutės argumentus prie „Python“ scenarijaus?

Kaip pridėti komandinės eilutės argumentus prie „Python“ scenarijaus?
Jei sukūrėte „Python“ scenarijų ar programą, skirtą pirmiausia paleisti terminalo emuliatoriuose ar net GUI programose, pridėję komandinės eilutės argumentus galite pagerinti jo naudojimą, kodo įskaitomumą, programos struktūrą ir bendrą programos patogumą vartotojui. galutinių vartotojų. Šie komandinės eilutės argumentai taip pat vadinami „parinktimis“ arba „jungikliais“ ir veikia panašiai kaip argumentai, kuriuos paprastai matote bash scenarijuose ir kitose C / C ++ pagrįstose programose.

Norėdami pridėti argumentų prie „Python“ scenarijų, turėsite naudoti įmontuotą modulį pavadinimu „Argparse“. Kaip rodo pavadinimas, jis analizuoja komandinės eilutės argumentus, naudojamus paleidžiant „Python“ scenarijų ar programą. Šiuos išanalizuotus argumentus taip pat tikrina „argparse“ modulis, kad įsitikintų, jog jie yra tinkamo „tipo“. Klaidos iškyla, jei argumentuose yra neteisingų reikšmių.

Argparse modulio naudojimą geriausiai galima suprasti pateikiant pavyzdžius. Žemiau yra keletas kodų pavyzdžių, kurie padės jums pradėti naudoti „argparse“ modulį.

1 pavyzdys: generuokite pagalbos argumentą ir pranešimą

Apsvarstykite toliau pateiktą kodo pavyzdį:

importuoti argparse
analizatorius = argparse.ArgumentParser (aprašymas = 'Testavimo programa.„)
args = analizatorius.parse_args ()

Pirmasis teiginys importuoja „argparse“ modulį. Tada sukuriamas naujas objekto „ArgumentParser“ egzempliorius ir trumpas programos aprašymas pateikiamas kaip argumentas. Objektas „ArgumentParser“ reikalingas norint konvertuoti komandinės eilutės argumentų reikšmes į „Python“ suprantamus duomenų tipus. Tai daroma „ArgumentParser“ objekto metodu „parse_args“, kaip parodyta paskutiniame sakinyje.

Darant prielaidą, kad išsaugojote aukščiau nurodytą kodo pavyzdį faile, pavadintame „testas.py “, vykdydami toliau pateiktas komandas, galėsite padėti pranešimams, susijusiems su programa.

$ ./ testas.py -h
$ ./ testas.py --pagalba

Turėtumėte gauti tam tikrą išvestį, panašią į šią:

naudojimas: testas.py [-h]
Bandomosios programos pasirenkami argumentai:
-h, --help parodyti šį pagalbos pranešimą ir išeiti

Atkreipkite dėmesį, kad jokia logika, skirta apdoroti išanalizuotus argumentus ir paversti juos objektais, nebuvo įtraukta į aukščiau paminėtą kodo pavyzdį. Taigi pagalbos pranešimai atskiriems argumentams išvestyje nerodomi. Kai programoje pridėsite analizuotų argumentų verčių tvarkymo logiką, pagalbos pranešimuose bus pradėti rodyti atskirų argumentų aprašymai.

2 pavyzdys: tvarkykite eilutės argumentą

Norėdami pridėti „Python“ scenarijuje priimtinus argumentus, turite naudoti metodą „add_argument“. Pažvelkite į šį kodą:

importuoti argparse
analizatorius = argparse.ArgumentParser (aprašymas = 'Testavimo programa.„)
analizatorius.add_argument ("print_string", help = "Spausdina pateiktą argumentą.")
args = analizatorius.parse_args ()
spausdinti (argument.print_string)

Pridėtas naujas teiginys, parodantis „add_argument“ metodo naudojimą. Bet koks argumentas, pridėtas paleidžiant scenarijų, „ArgumentParser“ bus traktuojamas kaip objektas „print_string“.

Atminkite, kad pagal numatytuosius nustatymus metodas „add_argument“ vertina iš argumentų gautas vertes kaip eilutes, todėl šiuo atveju nereikia aiškiai nurodyti „tipo“. Numatytoji reikšmė „Nėra“ taip pat priskiriama pridėtiems argumentams, nebent ji būtų nepaisoma.

Dar kartą pažvelkite į pagalbos pranešimą:

naudojimas: testas.py [-h] [print_string]
Bandymo programos padėties argumentai:
print_string išspausdina pateiktą argumentą
neprivalomi argumentai:
-h, --help parodyti šį pagalbos pranešimą ir išeiti

Vienoje iš išvesties eilučių rašoma „poziciniai argumentai“. Kadangi nėra apibrėžtas raktinis žodis argumentui, šiuo metu argumentas traktuojamas kaip „pozicinis argumentas“, kai pateikto argumento tvarka ir padėtis turi tiesioginį poveikį programai. Poziciniai argumentai taip pat yra privalomi, nebent rankiniu būdu pakeisite jų elgesį.

Norėdami apibrėžti ir išanalizuoti pasirenkamus argumentus, galite naudoti „-“ (dvigubą brūkšnį) ir pakeisti numatytąsias jų reikšmes naudodami „numatytąjį“ argumentą.

importuoti argparse
analizatorius = argparse.ArgumentParser (aprašymas = 'Testavimo programa.„)
analizatorius.add_argument ("- print_string", help = "Spausdina pateiktą argumentą.", default =" Atsitiktinė eilutė.“)
args = analizatorius.parse_args ()
spausdinti (argument.print_string)

Dabar, kai paleisite „testą.py “scenarijų be jokių argumentų, turėtumėte gauti„ Atsitiktinė eilutė.“Kaip išvestis. Taip pat galite naudoti raktinį žodį „-print_string“, kad atspausdintumėte bet kurią pasirinktą eilutę.

$ ./ testas.py --print_string „LinuxHint“.com
„LinuxHint“.com

Atminkite, kad pasirinktinį argumentą galite padaryti privalomu naudodami papildomą argumentą „reikalaujama = teisinga“.

Galiausiai taip pat galite apibrėžti trumpąsias argumento versijas naudodami „-“ (vienas brūkšnys), kad sumažintumėte daugiažodiškumą.

importuoti argparse
analizatorius = argparse.ArgumentParser (aprašymas = 'Testavimo programa.„)
analizatorius.add_argument (“- p”, “--print_string”, help = “Spausdina pateiktą argumentą.", default =" Atsitiktinė eilutė.“)
args = analizatorius.parse_args ()
spausdinti (argument.print_string)

Vykdydami šią komandą turėtumėte gauti tą patį rezultatą kaip ir anksčiau:

$ ./ testas.py -p „Linux“ patarimas.com

3 pavyzdys: apdorokite sveikojo skaičiaus argumentą

Norėdami tvarkyti argumentus, kuriems reikalingos sveiko skaičiaus vertės, turite nustatyti „type“ raktinį žodį į „int“, kad būtų galima patvirtinti ir išmesti klaidas, jei sąlyga netenkinama.

importuoti argparse
analizatorius = argparse.ArgumentParser (aprašymas = 'Testavimo programa.„)
analizatorius.add_argument ("- p", "--print_string", help = "Spausdina pateiktą argumentą.", type = int)
args = analizatorius.parse_args ()
spausdinti (argument.print_string)

Pabandykite paleisti šią komandą:

$ ./ testas.py -p „Linux“ patarimas.com

Turėtumėte gauti tokią klaidą:

naudojimas: testas.py [-h] [-p PRINT_STRING]
testas.py: error: argument -p / - print_string: neteisinga int reikšmė: 'LinuxHint.com “

Pateikę sveiko skaičiaus vertę gausite teisingą rezultatą:

$ ./ testas.py-1000 1000

4 pavyzdys: tvarkykite tikrus ir klaidingus perjungimus

Naudodami argumentą „veiksmas“, galite perduoti argumentus be jokių verčių, kad juos traktuotumėte kaip „True“ ir „False“ žymes.

importuoti argparse
analizatorius = argparse.ArgumentParser (aprašymas = 'Testavimo programa.„)
analizatorius.add_argument ("- p", "--print_string", help = "Spausdina pateiktą argumentą.", action =" store_true ")
args = analizatorius.parse_args ()
spausdinti (argument.print_string)

Paleiskite toliau pateiktą komandą, kad gautumėte paprastą „True“ kaip išvestį:

$ ./ testas.py -p

Jei scenarijų vykdysite be argumento „-p“, vietoj jo bus priskirta reikšmė „False“. Raktinio žodžio „action“ reikšmė „store_true“ priskiria kintamajam „print_string“ reikšmę „True“, kai aiškiai nurodomas argumentas „-p“, kitaip kintamajam priskiriama False.

5 pavyzdys: traktuokite argumentų reikšmes kaip sąrašą

Jei norite gauti kelias reikšmes vienu metu ir išsaugoti jas sąraše, turite pateikti raktinį žodį „nargs“ tokiu formatu:

importuoti argparse
analizatorius = argparse.ArgumentParser (aprašymas = 'Testavimo programa.„)
analizatorius.add_argument ("- p", "--print_string", help = "Spausdina pateiktą argumentą.", nargs = '*')
args = analizatorius.parse_args ()
spausdinti (argument.print_string)

Norėdami išbandyti aukščiau esantį kodą, vykdykite šią komandą:

$ ./ testas.py -p „a“ „b“

Turėtumėte gauti tokią išvestį:

['a', 'b']

Išvada

„Argparse“ modulis yra gana išsamus, su daugybe galimybių, kaip pakoreguoti komandinės eilutės programų elgseną ir išanalizuoti vartotojo pateiktas reikšmes. Šie pavyzdžiai paliečia tik pagrindinį „argparse“ modulio naudojimą. Jei reikia pažangių ir sudėtingų programų, gali prireikti skirtingų diegimų. Norėdami gauti išsamų modulio paaiškinimą, apsilankykite oficialioje dokumentacijoje.

Įdiekite naujausią „OpenRA“ strategijos žaidimą „Ubuntu Linux“
„OpenRA“ yra „Free / Free Real Time Strategy“ žaidimų variklis, atkuriantis ankstyvuosius „Westwood“ žaidimus, tokius kaip klasikinis „Command & Conqu...
Įdiekite naujausią „Dolecin Emulator“, skirtą „Gamecube“ ir „Wii“, sistemoje „Linux“
„Delfinų emuliatorius“ leidžia žaisti pasirinktus „Gamecube“ ir „Wii“ žaidimus „Linux“ asmeniniuose kompiuteriuose (PC). „Dolphin Emulator“ yra laisv...
Kaip naudoti „GameConqueror Cheat Engine“ sistemoje „Linux“
Straipsnyje pateikiamas „GameConqueror“ apgaulės variklio naudojimo „Linux“ vadove. Daugelis žaidėjų, žaidžiančių sistemoje „Windows“, dažnai naudoja ...