Lai pievienotu argumentus Python skriptiem, jums būs jāizmanto iebūvētais modulis ar nosaukumu “Argparse”. Kā norāda nosaukums, tas parsē komandrindas argumentus, kas izmantoti, palaižot Python skriptu vai lietojumprogrammu. Šos parsētos argumentus pārbauda arī “argparse” modulis, lai pārliecinātos, ka tiem ir pareizs “tips”. Ja argumentos ir nederīgas vērtības, tiek pieļautas kļūdas.
Argparse moduļa izmantošanu vislabāk var saprast, izmantojot piemērus. Zemāk ir daži kodu paraugi, kas ļaus jums sākt darbu ar argparse moduli.
1. piemērs: ģenerējiet palīdzības argumentu un ziņojumu
Apsveriet tālāk redzamo koda paraugu:
importa argparseparsētājs = argparse.ArgumentParser (apraksts = 'Pārbaudes programma.')
args = parsētājs.parse_args ()
Pirmajā paziņojumā tiek importēts “argparse” modulis. Pēc tam tiek izveidots jauns objekta “ArgumentParser” gadījums un kā arguments tiek sniegts īss programmas apraksts. Objekts ArgumentParser ir nepieciešams, lai komandrindas argumentu vērtības pārveidotu par Python saprotamiem datu tipiem. To veic ar objekta ArgumentParser metodi “parse_args”, kā parādīts pēdējā paziņojumā.
Pieņemot, ka iepriekš norādīto koda paraugu esat saglabājis failā ar nosaukumu “test.py ”, palaižot zemāk esošās komandas, jūs varēsiet palīdzēt ar programmu saistītiem ziņojumiem.
$ ./pārbaude.py -h$ ./pārbaude.py --palīdzība
Jums vajadzētu iegūt kādu līdzīgu produkciju:
izmantošana: pārbaude.py [-h]Testa programmas izvēles argumenti:
-h, --help parādīt šo palīdzības ziņojumu un iziet
Ņemiet vērā, ka iepriekš minētajam koda paraugam nav pievienota loģika, kas apstrādā parsētos argumentus un pārveido tos par objektiem. Tādējādi palīdzības ziņojumi atsevišķiem argumentiem netiek parādīti izvadē. Kad programmā būsit pievienojis parsētu argumentu vērtību apstrādes loģiku, palīdzības ziņojumos sāks rādīt atsevišķu argumentu aprakstus.
2. piemērs: rīkojieties ar virknes argumentu
Lai pievienotu argumentus, kurus pieņem jūsu Python skripts, jums jāizmanto metode “add_argument”. Apskatiet šo kodu:
importa argparseparsētājs = argparse.ArgumentParser (apraksts = 'Pārbaudes programma.')
parsētājs.add_argument ("print_string", help = "Izdrukā piegādāto argumentu.")
args = parsētājs.parse_args ()
drukāt (arg.print_string)
Ir pievienots jauns paziņojums, kurā parādīta metodes “add_argument” izmantošana. Jebkurš arguments, kas pievienots, palaižot skriptu, ar “ArgumentParser” tiks uzskatīts par objektu “print_string”.
Ņemiet vērā, ka pēc noklusējuma metode “add_argument” vērtības, kas iegūtas no argumentiem, uzskata par virknēm, tāpēc jums šajā gadījumā nav skaidri jānorāda “tips”. Noklusējuma vērtība “None” tiek piešķirta arī pievienotajiem argumentiem, ja vien netiek ignorēta.
Vēlreiz apskatiet palīdzības ziņojumu:
lietošana: pārbaude.py [-h] [print_string]Testa programmas pozicionālie argumenti:
print_string izdrukā piegādāto argumentu
izvēles argumenti:
-h, --help parādīt šo palīdzības ziņojumu un iziet
Vienā no izvades rindām ir teikts “pozicionālie argumenti”. Tā kā nav definēts neviens atslēgvārds argumentam, šobrīd arguments tiek uzskatīts par “pozicionālo argumentu”, kur piegādāto argumentu secība un pozīcija tieši ietekmē programmu. Pozicionālie argumenti ir arī obligāti, ja vien jūs manuāli nemaināt viņu uzvedību.
Lai definētu un parsētu izvēles argumentus, varat izmantot “-” (ar domuzīmi) un mainīt to noklusējuma vērtības, izmantojot “default” argumentu.
importa argparseparsētājs = argparse.ArgumentParser (apraksts = 'Pārbaudes programma.')
parsētājs.add_argument ("- print_string", help = "Izdrukā piegādāto argumentu.", default =" Nejauša virkne.”)
args = parsētājs.parse_args ()
drukāt (arg.print_string)
Tagad, kad jūs izpildāt “testu.py ”skripts bez jebkāda argumenta, jums jāiegūst“ Random string.”Kā izvadi. Varat arī izmantot atslēgvārdu “-print_string”, lai izdrukātu jebkuru virkni pēc savas izvēles.
$ ./pārbaude.py --print_string LinuxHint.comLinuxHint.com
Ņemiet vērā, ka izvēles argumentu var padarīt obligātu, izmantojot papildu argumentu “obligāts = patiess”.
Visbeidzot, lai samazinātu daudzbalsību, varat arī definēt argumenta īsās versijas, izmantojot “-” (vienu domuzīmi).
importa argparseparsētājs = argparse.ArgumentParser (apraksts = 'Pārbaudes programma.')
parsētājs.add_argument (“- p”, “--print_string”, help = “Izdrukā piegādāto argumentu.", default =" Nejauša virkne.”)
args = parsētājs.parse_args ()
drukāt (arg.print_string)
Palaidot šo komandu, jums būs tāds pats rezultāts kā iepriekš:
$ ./pārbaude.py -p LinuxHint.com3. piemērs: rīkojieties ar veselu skaitli
Lai apstrādātu argumentus, kuriem nepieciešamas veselas skaitļa vērtības, atslēgvārdam “type” ir jāiestata uz “int”, lai atļautu validāciju un kļūdas, ja nosacījums nav izpildīts.
importa argparseparsētājs = argparse.ArgumentParser (apraksts = 'Pārbaudes programma.')
parsētājs.add_argument ("- p", "--print_string", help = "Izdrukā piegādāto argumentu.", tips = int)
args = parsētājs.parse_args ()
drukāt (arg.print_string)
Mēģiniet palaist šo komandu:
$ ./pārbaude.py -p LinuxHint.comJums vajadzētu saņemt šādu kļūdu:
izmantošana: pārbaude.py [-h] [-p PRINT_STRING]pārbaude.py: kļūda: arguments -p / - print_string: nederīga int vērtība: 'LinuxHint.com '
Norādot veselu skaitli, iegūsiet pareizu rezultātu:
$ ./pārbaude.py-1000 10004. piemērs: rīkojieties ar patiesām un nepatiesām pārslēgšanām
Izmantojot argumentu “action”, varat nodot argumentus bez vērtībām, lai tos uzskatītu par “True” un “False” karodziņiem.
importa argparseparsētājs = argparse.ArgumentParser (apraksts = 'Pārbaudes programma.')
parsētājs.add_argument ("- p", "--print_string", help = "Izdrukā piegādāto argumentu.", action =" store_true ")
args = parsētājs.parse_args ()
drukāt (arg.print_string)
Palaidiet zemāk esošo komandu, lai iegūtu izvades vienkāršu “True”:
$ ./pārbaude.py -pJa palaidīsit skriptu bez “-p” argumenta, tā vietā tiks piešķirta vērtība “False”. Atslēgvārda “action” vērtība “store_true” piešķir “True” vērtību mainīgajam “print_string” ikreiz, kad ir skaidri norādīts arguments “-p”, pretējā gadījumā mainīgajam tiek piešķirts False.
5. piemērs: izturieties pret argumentu vērtībām kā sarakstu
Ja vēlaties iegūt vairākas vērtības vienlaikus un saglabāt tās sarakstā, jums jānorāda “nargs” atslēgvārds šādā formātā:
importa argparseparsētājs = argparse.ArgumentParser (apraksts = 'Pārbaudes programma.')
parsētājs.add_argument ("- p", "--print_string", help = "Izdrukā piegādāto argumentu.", nargs = '*')
args = parsētājs.parse_args ()
drukāt (arg.print_string)
Lai pārbaudītu iepriekš minēto kodu, izpildiet šo komandu:
$ ./pārbaude.py -p “a” “b”Jums vajadzētu iegūt kādu šādu rezultātu:
['a', 'b']Secinājums
Modulis “argparse” ir diezgan visaptverošs ar daudzām iespējām komandrindas lietojumprogrammu uzvedības pielāgošanai un lietotāja sniegto vērtību parsēšanai. Šie piemēri skar tikai “argparse” moduļa pamata lietošanu. Uzlabotām un sarežģītām lietojumprogrammām var būt nepieciešamas dažādas ieviešanas iespējas. Lai iegūtu pilnīgu moduļa skaidrojumu, apmeklējiet oficiālo dokumentāciju.