Kā parsēt argumentus komandrindā Python

How Parse Arguments Command Line Python



Komandrindas argumenti tiek izmantoti, lai nodotu datus programmā programmas izpildes laikā. Šī funkcija ir pieejama lielākajā daļā populāro programmēšanas valodu. Bet komandrindas argumentu apstrāde dažādās valodās ir atšķirīga. Argumentu vērtības tiek dotas ar programmas nosaukumu programmas palaišanas laikā. Python valoda atbalsta šo funkciju. Šajā rakstā ir parādīts, kā komandrindas argumenti tiek parsēti Python skriptā.

Analizē komandrindas argumentu, izmantojot sys modulis

Komandrindas argumenti tiek saglabāti sarakstā, izmantojot sys modulis. sys.argv tiek izmantots komandrindas argumentu vērtību lasīšanai. Kopējo komandrindas argumentu skaitu var saskaitīt, izmantojot len () funkciju. Šī moduļa izmantošana ir aprakstīta raksta daļā.







1. piemērs: argumentu skaita un argumentu vērtību nolasīšana

Izveidojiet failu ar šādu python skriptu. Šeit komandrindas argumentu vērtības tiek saglabātas mainīgajā, argv tāpat kā citas valodas. len () metode saskaita kopējo argumentu skaitu, kas tika nodoti skripta izpildes laikā. Argumentu vērtības skripta beigās tiek drukātas kā masīvs.



# Importēt sistēmas moduli
importēt sys

# Izdrukājiet kopējo argumentu skaitu
drukāt('Kopējie argumenti:', len(sys.argv))
drukāt('Argumentu vērtības ir šādas:', lpp(sys.argv))

Izeja:



Iepriekš minētais skripts tiek izpildīts, izmantojot četrus komandrindas argumentus. Pirmais arguments ir skripta nosaukums, bet citi - skaitliskās vērtības. Pēc skripta palaišanas parādīsies šāda izvade.





2. piemērs: argumentu vērtību nolasīšana, izmantojot cilpu



Iepriekšējā piemērā argumentu vērtības tiek drukātas kā masīvs. Izveidojiet failu ar šādu skriptu, lai izdrukātu argumenta mainīgā veidu, un izdrukājiet katru argumenta vērtību katrā rindā, izmantojot cilpu.

# Importēt sistēmas moduli
importēt sys

# Izdrukājiet mainīgā veidu sys.argv
drukāt(tipa(sys.argv))

# Izdrukājiet katru komandrindas argumentu katrā rindā
drukāt('Komandrindas argumenti ir šādi:')
priekšiiekšā sys.argv:
drukāt(i)

Izeja:

Iepriekš minētais skripts tiek izpildīts, norādot trīs argumentus ar skripta nosaukumu. Pēc skripta palaišanas parādīsies šāda izvade.

Analizē komandrindas argumentu, izmantojot moduli getopt

Papildināts modulis tiek izmantots, lai parsētu komandrindas argumentus ar opcijām. papildināts () Šī moduļa metode tiek izmantota argumentu lasīšanai. Šai metodei ir trīs argumenti. Pirmie divi argumenti ir obligāti, bet pēdējie nav obligāti. Šo argumentu lietojums ir norādīts zemāk.

args: Tas satur argumentu, kas ņemts no komandrindas argumenta.

short_option: Tā var būt jebkura vēstule, kas iet kopā ar argumentu.

long_option: To izmanto, lai definētu garas iespējas ar divām daļām. Tie ir opcijas nosaukums un opcijas vērtība.

Sintakse: getopt.getopt (args, short_option, [long_option])

3. piemērs: argumentu vērtību nolasīšana, izmantojot īsās getopt opcijas

papildināts modulim ir vairāk funkciju nekā sys modulis. Šis piemērs parāda, kā var izmantot īsās opcijas papildināts () metode. argv mainīgais saglabās komandrindas argumentus, izlaižot skripta nosaukumu. Tālāk sadaļā ir definētas divas iespējas papildināts () metode, kuru var izmantot kopā ar argumentu izpildes laikā. Ja rodas kāda kļūda, tiek parādīts kļūdas ziņojums.

# Importēt getopt moduli
importēt papildināts

# Importēt sistēmas moduli
importēt sys

# Saglabājiet argumentu mainīgo, izlaižot skripta nosaukumu
argv= sys.argv[1:]

pamēģini:
# Definējiet getopt īsās iespējas
iespējas,args= papildināts.papildināts(argv, 'x: y:')

# izdrukājiet opcijas un argumentu
drukāt(iespējas)
drukāt(args)

izņemot papildināts.GetoptError:

# Izdrukājiet kļūdas ziņojumu, ja ir norādīta nepareiza opcija
drukāt('Tiek piedāvāta nepareiza iespēja')

# Pārtrauciet skriptu
sys.Izeja(2)

Izeja:

Palaidiet skriptu bez jebkādiem argumentiem, argumentiem ar pareizām iespējām un argumentiem ar nepareizu opciju.

4. piemērs. Argumentu vērtību lasīšana, izmantojot īsās un garās getopt opcijas

Šis piemērs parāda, kā ar argumentu vērtībām var izmantot gan īsās, gan garās opcijas. Kad tas pievienos divus skaitļus '' uz '' vai ‘–Pievienot’ tiks izmantota kā opcija un atņem divus skaitļus, kad -s ' vai “ - apakš ” tiks izmantota kā opcija izpildes laikā.

# Importēt getopt moduli
importēt papildināts

# Importēt sistēmas moduli
importēt sys

# Saglabājiet argumentu mainīgo, izlaižot skripta nosaukumu
argv= sys.argv[1:]

# Inicializēt rezultātu mainīgo
rezultāts=0

pamēģini:

# Definējiet iespēju izvēlēties īsas un garas iespējas
iespējas,args= papildināts.papildināts(sys.argv[1:], 'a: s', ['pievienot =','sub ='])

# Izlasiet katru opciju, izmantojot cilpu
priekšizvēlēties,dusmīgsiekšāiespējas:
# Aprēķiniet summu, ja opcija ir -a vai -pievienot
jaizvēlētiesiekšā ('' uz '', '-pievienot'):
rezultāts= int(argv[1])+int(argv[2])

# Aprēķiniet suntrakciju, ja opcija ir -s vai --sub
elifsizvēlētiesiekšā ('-s', '-apakš'):
rezultāts= int(argv[1])-int(argv[2])

drukāt('Rezultāts =',rezultāts)

izņemot papildināts.GetoptError:

# Izdrukājiet kļūdas ziņojumu, ja ir norādīta nepareiza opcija
drukāt('Tiek piedāvāta nepareiza iespēja')

# Pārtrauciet skriptu
sys.Izeja(2)

Izeja:

Palaidiet skriptu bez jebkādiem argumentiem un opcijām, argumentiem ar opciju “-a”, argumentiem ar opciju “-s” un argumentiem ar nepareizu opciju.

Komandrindas argumenta parsēšana, izmantojot argparse moduli

Argparse modulī ir daudz iespēju komandrindas argumentu lasīšanai. Šis modulis var nodrošināt noklusējuma argumentu vērtības, argumentu ar datu tipu, pozīcijas argumentus, palīdzības ziņojumu utt.

5. piemērs: komandrindas argumentu lasīšana, izmantojot argparse

Šis piemērs parāda, kā izmantot argparse modulis komandrindas argumentu lasīšanai. Šeit ir definētas divas komandrindas argumentu lasīšanas iespējas. Šie ir “-N” vai “–vārds” un “-E” vai “–e-pasts”. Ja lietotājs sniedz nepareizu argumentu, tas parādīs kļūdu ar lietošanas ziņojumu. Ja lietotājs ar argumentiem nodrošina pareizas opcijas, tas parādīs argumentu vērtības. ja lietotājs skriptu palaiž ar opciju “–help”, tas sniegs vajadzīgo ziņojumu skripta palaišanai.

# Importēt argparse moduli
importētargparse

# Importēt sistēmas moduli
importēt sys

# Deklarēšanas funkcija, lai definētu komandrindas argumentus
defreadOptions(args=sys.argv[1:]):
parsētājs =argparse.ArgumentParser(apraksts='Parsēšanas komandu saraksti.')
parsētājs.add_argument('' n '', '-vārds', palīdzēt='Ierakstiet savu vārdu.')
parsētājs.add_argument('-Un', '-e-pasts', palīdzēt='Ierakstiet savu e -pastu.')
izvēlas= parsētājs.parse_args(args)
atgrieztiesizvēlas

# Izsauciet funkciju, lai nolasītu argumentu vērtības
iespējas=readOptions(sys.argv[1:])
drukāt(iespējas.vārds)
drukāt(iespējas.e -pastu)

Izeja:

Palaidiet skriptu ar nepareizu opciju, pareizo opciju un palīdzības iespēju.

Secinājums:

Šajā apmācībā ir izskaidroti dažādi komandrindas argumentu lasīšanas veidi, izmantojot trīs python moduļus. Es ceru, ka šī apmācība palīdzēs kodētājam, kurš vēlas lasīt datus, izmantojot komandrindas argumentus python.

Skatieties autora video: šeit