Python

Kuidas lisada Pythoni skripti käsureaargumente

Kuidas lisada Pythoni skripti käsureaargumente

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 argparse
parser = 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 argparse
parser = 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 argparse
parser = 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.com

Pange 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 argparse
parser = 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.com

Nä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 argparse
parser = 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.com

Peaksite 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 1000

Nä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 argparse
parser = 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 -p

Kui 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 argparse
parser = 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.

Kuidas mängu Linuxis arendada
Kümme aastat tagasi ei osanud paljud Linuxi kasutajad ennustada, et nende lemmikoperatsioonisüsteem on ühel päeval populaarne kommertsvideomängude män...
Kommertsmängumootorite avatud lähtekoodiga sadamad
Tasuta, avatud lähtekoodiga ja platvormidevaheliste mängumootorite puhkusereise saab kasutada nii vanade kui ka mõnede üsna hiljutiste mängude pealkir...
Parimad Linuxi käsurea mängud
Käsurida pole Linuxi kasutamisel lihtsalt teie suurim liitlane - see võib olla ka meelelahutusallikas, sest saate seda kasutada paljude lõbusate mängu...