Python

Kā parsēt argumentus komandrindā Python

Kā parsēt argumentus komandrindā Python
Komandrindas argumenti tiek izmantoti datu pārsūtīšanai 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 norādītas ar programmas nosaukumu programmas palaišanas laikā. Python valoda atbalsta šo funkciju. Kā komandrindas argumenti tiek parsēti Python skriptā, ir parādīts šajā rakstā.

Parsējot komandrindas argumentu, izmantojot sys modulis

Komandrindas argumenti tiek saglabāti sarakstā, izmantojot sys modulis.  sys.argv tiek izmantots komandrindas argumentu vērtību nolasīš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 un argumentu vērtību lasīš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 nodoti skripta izpildes laikā. Argumenta vērtības tiek drukātas kā masīvs skripta beigās.

# Importēt sys moduli
importa sys
# Drukāt kopējo argumentu skaitu
print ('Kopā argumenti:', len (sys.argv))
print ('Argumentu vērtības ir:', str (sys.argv))

Izeja:

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

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ā tipu un izdrukātu katru argumenta vērtību katrā rindā, izmantojot for loop.

# Importēt sys moduli
importa sys
# Izdrukājiet mainīgā veidu, sys.argv
drukāt (tips (sys.argv))
# Izdrukājiet katru komandrindas argumentu katrā rindā
print ('Komandrindas argumenti ir:')
par i iekšā.argv:
drukāt (i)

Izeja:

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

Parsējot komandrindas argumentu, izmantojot moduli getopt

Getopt modulis tiek izmantots, lai parsētu komandrindas argumentus ar opcijām. getopt () Šī moduļa metode tiek izmantota argumentu lasīšanai. Šai metodei ir trīs argumenti. Pirmie divi argumenti ir obligāti, un pēdējais arguments nav obligāts. Šo argumentu izmantojums 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 lasīšana, izmantojot īsas getopt opcijas

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

# Importēt getopt moduli
importēt getopt
# Importēt sys moduli
importa sys
# Store argumenta mainīgais, izlaižot skripta nosaukumu
argv = sys.argv [1:]
 
mēģiniet:
# Definējiet īsās opcijas getopt
opcijas, args = getopt.getopt (argv, 'x: y:')
# izdrukājiet opcijas un argumentu
drukāt (opcijas)
drukāt (args)
 
izņemot getopt.GetoptError:
# Ja ir norādīta nepareiza opcija, izdrukājiet kļūdas ziņojumu
drukāt ('Ir sniegta nepareiza opcija')
# Pārtraukt skriptu
sys.izeja (2)

Izeja:

Palaidiet skriptu bez argumentiem, argumentiem ar pareizām opcijā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ā argumenta vērtībās var izmantot gan īsās, gan garās opcijas. Kad tiks pievienoti divi skaitļi "-a" vai '-add' tiks izmantots kā opcija un atņemot divus skaitļus, kad '-s ' vai '-apakšdaļa izpildes laikā tiks izmantota kā opcija.

# Importēt getopt moduli
importēt getopt
# Importēt sys moduli
importa sys
# Store argumenta mainīgais, izlaižot skripta nosaukumu
argv = sys.argv [1:]
# Inicializēt rezultāta mainīgo
rezultāts = 0
 
mēģiniet:
 
# Definējiet getopt īsās un garās iespējas
opcijas, args = getopt.getopt (sys.argv [1:], 'a: s', ['add =', 'sub ='])
 
# Izlasiet katru opciju, izmantojot cilpu
lai izvēlētos, argumentējiet opcijās:
# Aprēķiniet summu, ja opcija ir -a vai --add
ja izvēlaties ('-a', '--add'):
rezultāts = int (argv [1]) + int (argv [2])
# Aprēķiniet saules noņemšanu, ja opcija ir -s vai --sub
elif opt in ('-s', '--sub'):
rezultāts = int (argv [1]) - int (argv [2])
 
izdrukāt ('Rezultāts =', rezultāts)
izņemot getopt.GetoptError:
# Ja ir norādīta nepareiza opcija, izdrukājiet kļūdas ziņojumu
drukāt ('Ir sniegta nepareiza opcija')
# Pārtraukt 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.

Parsējot komandrindas argumentu, izmantojot argparse moduli

Argparse modulis satur daudz iespēju izlasīt komandrindas argumentus. Noklusējuma argumentu vērtības, arguments ar datu tipu, pozīcijas argumenti, palīdzības ziņojums utt. var nodrošināt šis modulis.

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

Šajā piemērā parādīts argparse modulis komandrindas argumenta nolasīšanai. Šeit komandrindas argumentu nolasīšanai ir noteiktas divas iespējas. Šie ir '-n' vai '-name' un “-e” vai “-E-pasts”. Ja lietotājs norāda nepareizu argumentu, tas parādīs kļūdu ar lietošanas ziņojumu. Ja lietotājs ar argumentiem piedāvā pareizas opcijas, tas parādīs argumentu vērtības. ja lietotājs palaiž skriptu ar opciju '-help', tas sniegs nepieciešamo ziņojumu, lai palaistu skriptu.

# Importēt argparse moduli
importa argparse
# Importēt sys moduli
importa sys
# Deklarēt funkciju, lai definētu komandrindas argumentus
def readOptions (args = sys.argv [1:]):
parsētājs = argparse.ArgumentParser (description = "Parsēšanas komandu saraksti.")
parsētājs.add_argument ("- n", "--name", help = "Ierakstiet savu vārdu.")
parsētājs.add_argument ("- e", "--email", help = "Ierakstiet savu e-pastu.")
izvēlas = parsētājs.parse_args (args)
atgriešanās izvēlas
# Izsauciet funkciju, lai nolasītu argumentu vērtības
options = readOptions (sys.argv [1:])
drukāt (opcijas.nosaukums)
drukāt (opcijas.e-pasts)

Izeja:

Palaist skriptu ar nepareizu opciju, pareizu opciju un palīdzības opciju.

Secinājums:

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

Noskatieties autora video: šeit

WinMouse ļauj jums pielāgot un uzlabot peles rādītāja kustību Windows datorā
Ja vēlaties uzlabot peles rādītāja noklusējuma funkcijas, izmantojiet bezmaksas programmatūru WinMouse. Tas pievieno vairāk funkciju, kas palīdzēs jum...
Peles kreisā klikšķa poga nedarbojas operētājsistēmā Windows 10
Ja ar klēpjdatoru vai galddatoru izmantojat īpašu peli, bet nedarbojas peles kreisās klikšķa poga kādu iemeslu dēļ operētājsistēmā Windows 10/8/7 šeit...
Rakstot Windows 10, kursors lec vai pārvietojas nejauši
Ja atklājat, ka peles kursors automātiski, nejauši lec vai pārvietojas pats, rakstot Windows klēpjdatorā vai datorā, daži no šiem ieteikumiem var palī...