Če želite skriptom Python dodati argumente, boste morali uporabiti vgrajeni modul z imenom "Argparse". Kot že ime pove, analizira argumente ukazne vrstice, uporabljene med zagonom skripta ali aplikacije Python. Te razčlenjene argumente preveri tudi modul "argparse", da se zagotovi, da so ustreznega "tipa". Napake se pokažejo, če so v argumentih neveljavne vrednosti.
Uporabo modula argparse lahko najbolje razumemo s primeri. Spodaj je nekaj vzorcev kode, s katerimi boste začeli z modulom argparse.
Primer 1: Ustvari argument in sporočilo pomoči
Upoštevajte spodnji vzorec kode:
uvoz argparserazčlenjevalnik = argparse.ArgumentParser (description = 'Preskusni program.')
args = razčlenjevalnik.parse_args ()
Prva izjava uvozi modul "argparse". Nato se ustvari nov primerek predmeta »ArgumentParser« in kot argument se navede kratek opis programa. Objekt ArgumentParser je potreben za pretvorbo vrednosti argumentov ukazne vrstice v podatkovne tipe, ki jih razume Python. To naredi metoda "parse_args" predmeta ArgumentParser, kot je prikazano v zadnji izjavi.
Ob predpostavki, da ste zgoraj navedeno vzorčno kodo shranili v datoteko z imenom „test.py ”, s pomočjo spodnjih ukazov boste dobili pomoč pri sporočilih, povezanih s programom.
$ ./ test.py -h$ ./ test.py --pomoč
Morali bi dobiti nekaj podobnih rezultatov:
uporaba: test.py [-h]Neobvezni argumenti testnega programa:
-h, --help prikaže to sporočilo o pomoči in izstopi
Upoštevajte, da zgoraj omenjenemu vzorcu ni dodana nobena logika za obdelavo razčlenjenih argumentov in njihovo pretvorbo v predmete. Sporočila pomoči za posamezne argumente zato niso prikazana v izhodnih podatkih. Ko v svoj program dodate logiko za obdelavo vrednosti razčlenjenih argumentov, bodo sporočila za pomoč začela prikazovati opise posameznih argumentov.
Primer 2: Obravnava niznega argumenta
Če želite dodati argumente, sprejemljive za vaš skript Python, morate uporabiti metodo "add_argument". Oglejte si naslednjo kodo:
uvoz argparserazčlenjevalnik = argparse.ArgumentParser (description = 'Preskusni program.')
razčlenjevalnik.add_argument ("print_string", help = "Natisne priloženi argument.")
args = razčlenjevalnik.parse_args ()
natisni (arg.print_string)
Dodan je nov stavek, ki prikazuje uporabo metode "add_argument". Vsak argument, dodan med zagonom skripta, bo "ArgumentParser" obravnaval kot objekt "print_string".
Upoštevajte, da metoda »add_argument« privzeto vrednosti, pridobljene iz argumentov, obravnava kot nize, zato vam v tem primeru ni treba izrecno določiti »tipa«. Dodanim argumentom je dodeljena tudi privzeta vrednost »Brez«, razen če je ne preglasite.
Še enkrat si oglejte sporočilo za pomoč:
uporaba: test.py [-h] [print_string]Pozicijski argumenti testnega programa:
print_string natisne priloženi argument
neobvezni argumenti:
-h, --help prikaže to sporočilo o pomoči in izstopi
Ena od vrstic v izhodu pravi "položajni argumenti". Ker nobena ključna beseda za argument ni definirana, se trenutno argument obravnava kot "pozicijski argument", kjer vrstni red in položaj podanega argumenta neposredno vpliva na program. Pozicijski argumenti so prav tako obvezni, razen če ročno spremenite njihovo vedenje.
Če želite določiti in razčleniti neobvezne argumente, lahko uporabite »-« (dvojno pomišljaj) in spremenite njihove privzete vrednosti z uporabo argumenta »privzeto«.
uvoz argparserazčlenjevalnik = argparse.ArgumentParser (description = 'Preskusni program.')
razčlenjevalnik.add_argument ("- print_string", help = "Natisne priloženi argument.", privzeto =" Naključni niz.")
args = razčlenjevalnik.parse_args ()
natisni (arg.print_string)
Zdaj, ko zaženete "test.py "brez kakršnega koli argumenta, dobili bi" Naključni niz."Kot izhod. Po želji lahko uporabite tudi ključno besedo "-print_string" za tiskanje poljubnega niza po vaši izbiri.
$ ./ test.py --print_string LinuxHint.comLinuxHint.com
Upoštevajte, da lahko neobvezni argument naredite obveznim z uporabo dodatnega argumenta "required = True".
Na koncu lahko določite tudi stenografske različice argumenta z uporabo "-" (en pomišljaj), da zmanjšate podrobnost.
uvoz argparserazčlenjevalnik = argparse.ArgumentParser (description = 'Preskusni program.')
razčlenjevalnik.add_argument (“- p”, "--print_string", help = "Natisne priloženi argument.", privzeto =" Naključni niz.")
args = razčlenjevalnik.parse_args ()
natisni (arg.print_string)
Če zaženete naslednji ukaz, bi morali dobiti enak rezultat kot zgoraj:
$ ./ test.py -p LinuxHint.com3. primer: obdelajte celoštevilčni argument
Če želite obravnavati argumente, ki potrebujejo celoštevilske vrednosti, morate ključno besedo "type" nastaviti na "int", da omogočite preverjanje veljavnosti in napake v primeru, da pogoj ni izpolnjen.
uvoz argparserazčlenjevalnik = argparse.ArgumentParser (description = 'Preskusni program.')
razčlenjevalnik.add_argument ("- p", "--print_string", help = "Natisne priloženi argument.", vnesite = int)
args = razčlenjevalnik.parse_args ()
natisni (arg.print_string)
Poskusite zagnati naslednji ukaz:
$ ./ test.py -p LinuxHint.comMorali bi dobiti takšno napako:
uporaba: test.py [-h] [-p PRINT_STRING]preskus.py: napaka: argument -p / - print_string: neveljavna vrednost int: 'LinuxHint.com '
Če navedete celoštevilčno vrednost, boste dobili pravi rezultat:
$ ./ test.py -p 1000 10004. primer: ravnajte s pravilnimi in napačnimi preklopi
Argumente lahko posredujete brez kakršnih koli vrednosti, da jih z argumentom »action« obravnavate kot zastavi True in False.
uvoz argparserazčlenjevalnik = argparse.ArgumentParser (description = 'Preskusni program.')
razčlenjevalnik.add_argument ("- p", "--print_string", help = "Natisne priloženi argument.", action =" store_true ")
args = razčlenjevalnik.parse_args ()
natisni (arg.print_string)
Zaženite spodnji ukaz, če želite kot izhod dobiti preprosto »True«:
$ ./ test.py -pČe skript zaženete brez argumenta “-p”, bo namesto njega dodeljena vrednost “False”. Vrednost "store_true" ključne besede "action" spremenljivki "print_string" dodeli vrednost "True", kadar je izrecno naveden argument "-p", sicer pa je spremenljivki dodeljena False.
Primer 5: Vrednosti argumenta obravnavaj kot seznam
Če želite naenkrat dobiti več vrednosti in jih shraniti na seznam, morate navesti ključno besedo »nargs« v naslednji obliki:
uvoz argparserazčlenjevalnik = argparse.ArgumentParser (description = 'Preskusni program.')
razčlenjevalnik.add_argument ("- p", "--print_string", help = "Natisne priloženi argument.", nargs = '*')
args = razčlenjevalnik.parse_args ()
natisni (arg.print_string)
Zaženite naslednji ukaz, da preizkusite zgornjo kodo:
$ ./ test.py -p "a" "b"Morali bi dobiti nekaj takšnih rezultatov:
['a', 'b']Zaključek
Modul »argparse« je precej izčrpen s številnimi možnostmi za prilagajanje vedenja aplikacij ukazne vrstice in razčlenjevanjem uporabniških vrednosti. Ti primeri se dotikajo samo osnovne uporabe modula "argparse". Za napredne in zapletene aplikacije boste morda potrebovali različne izvedbe. Za popolno razlago modula obiščite uradno dokumentacijo.