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 moduliimporta 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 moduliimporta 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 moduliimportē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 moduliimportē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 moduliimporta 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