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 peaks peamiselt töötama terminali emulaatorites või isegi GUI-rakendustes, 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 "suvanditeks" või "lülititeks" ja need töötavad 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 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 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 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 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 „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.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 lühiduse vähendamiseks määratleda argumendi lühiversioonid, kasutades tähist "-" (üks kriips).

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ä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.

Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...
Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...
Kuidas muuta hiirekursori ja kursori suurust, värvi ja skeemi Windows 10-s
Windows 10 hiirekursor ja kursor on operatsioonisüsteemi väga olulised aspektid. Seda võib öelda ka teiste opsüsteemide kohta, nii et tegelikult pole ...