Kui olete välja töötanud Pythoni skripti või rakenduse, mis on mõeldud peamiselt terminalimulaatorites või isegi GUI-rakendustes käitamiseks, võib käsurea argumentide lisamine parandada selle kasutatavust, koodi loetavust, rakenduse struktuuri ja rakenduse üldist kasutajasõbralikkust lõppkasutajatele. Neid käsurea argumente nimetatakse ka "valikuteks" või "lülititeks" ja need toimivad sarnaselt argumentidele, mida tavaliselt näete bashi skriptides ja muudes C / C ++-põhistes programmides.
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 lauses.
Eeldades, et olete ülalkirjeldatud koodinäidise salvestanud faili nimega „test.py ”, käivitades allpool olevad käsud, saate programmi abisõnumeid.
$ ./ test.py -h$ ./ test.py --abiline
Peaksite saama mõne sarnase väljundi:
kasutamine: test.py [-h]Testprogramm.
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 kirjeldust.
Näide 2: käsitsege stringi argumenti
Püütoni 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 lause, 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.
Vaadake veel kord abisõnumit:
kasutamine: test.py [-h] [print_string]Testprogramm.
positsioonilised argumendid:
print_string Prindib tarnitud 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 “positsiooni argumendina”, kus esitatud argumendi järjekord ja positsioon avaldavad otsest mõju programmile. Kohustuslikud argumendid on samuti kohustuslikud, kui te ei muuda nende käitumist käsitsi.
Valikuliste argumentide määratlemiseks ja sõelumiseks võite kasutada "-" (topeltkriipsu) 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 „test.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.com Linuxi vihje.comPange tähele, et saate valikulise argumendi kohustuslikuks muuta, kasutades täiendavat argumenti „nõutav = tõene“.
Lõpuks saate ka "-" (üks kriips) abil määratleda argumendi lühiversioonid, et vähendada paljusust.
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äsurearakenduste 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.