„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ą galutiniams vartotojams. Š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 komandų eilutės argumentų reikšmes konvertuoti į „Python“ suprantamus duomenų tipus. Tai daroma taikant „ArgumentParser“ objekto metodą „parse_args“, kaip parodyta paskutiniame sakinyje.

Darant prielaidą, kad išsaugojote aukščiau nurodytą kodo pavyzdį faile, pavadintame „testas.py “, vykdydami toliau pateiktas komandas gausite pagalbos pranešimus, susijusius su programa.

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

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

naudojimas: testas.py [-h]
Testavimo programa.
neprivalomi 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ėtas rodyti atskirų argumentų aprašymas.

2 pavyzdys: tvarkykite eilutės argumentą

Norėdami pridėti „Python“ scenarijaus 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 reikšmes 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]
Testavimo programa.
poziciniai argumentai:
print_string 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 vykdote „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ų pakoreguoti komandinės eilutės programų elgesį 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.

Geriausios „Linux“ skirtos „Gamepad“ žemėlapių sudarymo programos
Jei jums patinka žaisti žaidimus „Linux“ su žaidimų pultu, o ne įprasta klaviatūra ir pelės įvesties sistema, yra keletas jums naudingų programų. Daug...
Naudingi įrankiai „Linux“ žaidėjams
Jei jums patinka žaisti žaidimus „Linux“ sistemoje, yra tikimybė, kad galbūt naudojote tokias programas ir įrankius kaip „Wine“, „Lutris“ ir „OBS Stud...
„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...