Argumentide lisamiseks Pythoni skriptidesse peate kasutama sisseehitatud moodulit nimega "Argparse". Nagu nimigi ütleb, sõelub see Pythoni skripti või rakenduse käivitamisel kasutatud käsurea argumente. Neid parsitud argumente kontrollib ka moodul “argparse”, et veenduda, et need on õige “tüübiga”. Kui argumentides on valesid väärtusi, tõstatatakse vead.
Argparse mooduli kasutamist saab kõige paremini mõista näidete kaudu. Allpool on mõned koodinäidised, mis aitavad teil alustada argparse mooduliga.
Näide 1: abiargumendi ja -sõnumi loomine
Mõelge allpool toodud koodinäidisele:
import argparseparser = argparse.ArgumentParser (description = 'Testprogramm.')
args = parser.parse_args ()
Esimene lause impordib mooduli argparse. Järgmisena luuakse uus objekt „ArgumentParser” ja argumendina esitatakse programmi lühikirjeldus. Objekti ArgumentParser on vaja käsurea argumentide väärtuste teisendamiseks Pythonile arusaadavaks andmetüübiks. Seda tehakse objekti ArgumentParser meetodil “parse_args”, nagu on näidatud viimases avalduses.
Eeldades, et olete ülalkirjeldatud näidiskoodi salvestanud faili nimega „test.py ”, käivitades alltoodud käske, saate aidata programmiga seotud sõnumeid.
$ ./ test.py -h$ ./ test.py --abiline
Peaksite saama mõne sarnase väljundi:
kasutamine: test.py [-h]Testprogrammi valikulised argumendid:
-h, --help näitavad seda abisõnumit ja väljuvad
Pange tähele, et ülalnimetatud koodinäidisesse pole lisatud loogikat, mis käsitleb parsitud argumente ja teisendab need objektideks. Seega ei kuvata väljundis üksikute argumentide abisõnumeid. Kui lisate programmis parsitud argumentide väärtuste käsitlemise loogika, hakatakse abisõnumites kuvama üksikute argumentide kirjeldusi.
Näide 2: käsitsege stringi argumenti
Pythoni skripti jaoks vastuvõetavate argumentide lisamiseks peate kasutama meetodit „add_argument”. Vaadake järgmist koodi:
import argparseparser = argparse.ArgumentParser (description = 'Testprogramm.')
parser.add_argument ("print_string", help = "Prindib tarnitud argumendi.")
args = parser.parse_args ()
print (arg.print_string)
Lisatud on uus avaldus, mis näitab meetodi „add_argument” kasutamist. Kõiki skripti käivitamisel lisatud argumente käsitleb „ArgumentParser” objektina „print_string”.
Pange tähele, et vaikimisi käsitleb meetod „add_argument” argumentidena saadud väärtusi stringidena, nii et te ei pea sel juhul „tüüpi” selgesõnaliselt määrama. Lisatud argumentidele määratakse ka vaikeväärtus „Puudub”, kui neid ei tühistata.
Veelkord heitke pilk abisõnumile:
kasutamine: test.py [-h] [print_string]Testprogrammi positsioonargumendid:
print_string prindib lisatud argumendi
valikulised argumendid:
-h, --help näitavad seda abisõnumit ja väljuvad
Üks väljundi rida ütleb "positsiooni argumendid". Kuna argumendi märksõna pole määratletud, käsitletakse argumenti praegu „positsioonilise argumendina“, kus esitatud argumendi järjestus ja positsioon mõjutavad programmi. Kohustuslikud argumendid on samuti kohustuslikud, kui te ei muuda nende käitumist käsitsi.
Valikuliste argumentide määratlemiseks ja sõelumiseks võite kasutada "-" (topeltkriips) ja muuta nende vaikeväärtusi, kasutades argumenti "default".
import argparseparser = argparse.ArgumentParser (description = 'Testprogramm.')
parser.add_argument ("- print_string", help = "Prindib tarnitud argumendi.", default =" Juhuslik string.”)
args = parser.parse_args ()
print (arg.print_string)
Nüüd, kui käivitate „testi.py ”skripti ilma ühegi argumendita, peaksite saama juhusliku stringi.”Väljundina. Valikulise stringi printimiseks võite kasutada ka märksõna „-print_string”.
$ ./ test.py --print_string LinuxHint.comLinuxi vihje.com
Pange tähele, et saate valikulise argumendi kohustuslikuks muuta, kasutades täiendavat argumenti „nõutav = tõene“.
Lõpuks saate ka lühiduse vähendamiseks määratleda argumendi lühiversioonid, kasutades tähist "-" (üks kriips).
import argparseparser = argparse.ArgumentParser (description = 'Testprogramm.')
parser.add_argument (“- p”, "--print_string", help = "Prindib tarnitud argumendi.", default =" Juhuslik string.”)
args = parser.parse_args ()
print (arg.print_string)
Järgmise käsu käivitamine peaks andma teile sama tulemuse nagu eespool:
$ ./ test.py -p Linuxi vihje.comNäide 3: Käsitlege täisarvu
Täisarvu väärtusi vajavate argumentide käsitsemiseks peate määrama märksõna „type” väärtuseks „int”, et lubada valideerimist ja visata vigu juhul, kui tingimus ei ole täidetud.
import argparseparser = argparse.ArgumentParser (description = 'Testprogramm.')
parser.add_argument ("- p", "--print_string", help = "Prindib tarnitud argumendi.", tüüp = int)
args = parser.parse_args ()
print (arg.print_string)
Proovige käivitada järgmine käsk:
$ ./ test.py -p Linuxi vihje.comPeaksite saama sellise vea:
kasutamine: test.py [-h] [-p PRINT_STRING]test.py: tõrge: argument -p / - print_string: kehtetu int väärtus: 'LinuxHint.com '
Täisarvu sisestamine annab teile õige tulemuse:
$ ./ test.py -p 1000 1000Näide 4: käsitsege tõelisi ja valesid lülitusi
Argumenti „action” kasutades saate argumente edastada ilma väärtusteta, et neid käsitleda tõeste ja valede lippudena.
import argparseparser = argparse.ArgumentParser (description = 'Testprogramm.')
parser.add_argument ("- p", "--print_string", help = "Prindib tarnitud argumendi.", action =" store_true ")
args = parser.parse_args ()
print (arg.print_string)
Käivitage alltoodud käsk, et saada väljundiks lihtne “True”:
$ ./ test.py -pKui käivitate skripti ilma argumendita “-p”, määratakse selle asemel väärtus “False”. Märksõna „action” väärtus „store_true” määrab muutujale „print_string” väärtuse „True” alati, kui argument „-p” on sõnaselgelt määratud, vastasel juhul määratakse muutujale vale.
Näide 5: käsitle argumendi väärtusi loendina
Kui soovite saada mitu väärtust korraga ja salvestada need loendisse, peate sisestama märksõna nargs järgmises vormingus:
import argparseparser = argparse.ArgumentParser (description = 'Testprogramm.')
parser.add_argument ("- p", "--print_string", help = "Prindib tarnitud argumendi.", nargs = '*')
args = parser.parse_args ()
print (arg.print_string)
Ülaltoodud koodi testimiseks käivitage järgmine käsk:
$ ./ test.py -p “a” “b”Peaksite saama sellise väljundi:
['a', 'b']Järeldus
Moodul “argparse” on üsna põhjalik ja sisaldab palju võimalusi käsurea rakenduste käitumise muutmiseks ja kasutaja sisestatud väärtuste sõelumiseks. Need näited puudutavad ainult argparse mooduli põhikasutust. Täiustatud ja keeruliste rakenduste jaoks võib vaja minna erinevaid rakendusi. Mooduli täieliku selgituse saamiseks külastage ametlikku dokumentatsiooni.