Razčlenjevanje argumenta ukazne vrstice z uporabo sys modul
Argumenti ukazne vrstice se shranijo na seznam z uporabo sys modul. sys.argv se uporablja za branje vrednosti argumentov ukazne vrstice. Skupno število argumentov ukazne vrstice je mogoče prešteti z uporabo len () funkcijo. Uporaba tega modula je opisana v delu članka.
Primer 1: branje števila argumentov in vrednosti argumentov
Ustvarite datoteko z naslednjim skriptom python. Tu so vrednosti argumentov ukazne vrstice shranjene v spremenljivki, argv kot drugi jeziki. len () metoda šteje skupno število argumentov, predanih v času izvajanja skripta. Vrednosti argumenta so natisnjene kot matrika na koncu skripta.
# Uvozi modul sysuvoz sys
# Natisnite skupno število argumentov
print ('Skupno argumentov:', len (sys.argv))
print ('Vrednosti argumenta so:', str (sys.argv))
Izhod:
Zgornji skript se tukaj izvede z uporabo štirih argumentov ukazne vrstice. Prvi argument je ime skripta, drugi pa so številčne vrednosti. Po zagonu skripta se prikaže naslednji izhod.
Primer 2: Branje vrednosti argumentov z uporabo zanke
V prejšnjem primeru so vrednosti argumentov natisnjene kot matrika. Ustvarite datoteko z naslednjim skriptom, da natisnete vrsto spremenljivke argumenta in z vsako zanko natisnete vsako vrednost argumenta z zanko for.
# Uvozi modul sysuvoz sys
# Natisnite vrsto spremenljivke, sys.argv
print (vrsta (sys.argv))
# Natisnite vsak argument ukazne vrstice v vsako vrstico
print ('Argumenti ukazne vrstice so:')
za i v sys.argv:
natisni (i)
Izhod:
Zgornji skript se izvede tako, da navedete tri argumente z imenom skripta. Po zagonu skripta se prikaže naslednji izhod.
Razčlenjevanje argumenta ukazne vrstice z uporabo modula getopt
Getopt modul se uporablja za razčlenitev argumentov ukazne vrstice z možnostmi. getopt () metoda tega modula se uporablja za branje argumentov. Ta metoda ima tri argumente. Prva dva argumenta sta obvezna, zadnji argument pa neobvezen. Uporaba teh argumentov je podana spodaj.
argumenti: Vsebuje argument, vzet iz argumenta ukazne vrstice.
short_option: Lahko je katera koli črka, ki preide z argumentom.
long_option: Uporablja se za definiranje dolgih možnosti z dvema delom. To sta ime in vrednost možnosti.
Sintaksa: getopt.getopt (args, short_option, [long_option])
Primer 3: Branje vrednosti argumentov z uporabo kratkih možnosti getopt
getopt vsebuje več funkcij kot sys modul. Naslednji primer prikazuje, kako je mogoče uporabiti kratke možnosti getopt () metoda. argv spremenljivka bo shranila argumente ukazne vrstice z izpuščanjem imena skripta. Nato sta v getopt () metoda, ki se lahko uporablja z argumentom v času izvajanja. Če pride do kakršne koli napake, se prikaže sporočilo o napaki.
# Uvozi modul getoptuvozi getopt
# Uvozi modul sys
uvoz sys
# Spremeni spremenljivko argumenta brez imena skripta
argv = sys.argv [1:]
poskusite:
# Določite kratke možnosti getopt
možnosti, args = getopt.getopt (argv, 'x: y:')
# natisnite možnosti in argument
tiskanje (možnosti)
tiskanje (argumenti)
razen getopt.GetoptError:
# Če je napačna možnost, natisnite sporočilo o napaki
print ('Na voljo je napačna možnost')
# Prekinite skript
sys.izhod (2)
Izhod:
Zaženite skript brez kakršnih koli argumentov, argumentov s pravilnimi možnostmi in argumentov z napačno možnostjo.
Primer 4: Branje vrednosti argumentov z uporabo kratkih in dolgih možnosti pridobivanja
Ta primer prikazuje, kako je mogoče z vrednostmi argumentov uporabiti tako kratke kot dolge možnosti. Ko bo dodala dve številki '-a' ali '-dodaj' se uporabi kot možnost in odšteje dve številki, ko '-s ' ali '-pod ' bo uporabljena kot možnost v času izvajanja.
# Uvozi modul getoptuvozi getopt
# Uvozi modul sys
uvoz sys
# Spremeni spremenljivko argumenta brez imena skripta
argv = sys.argv [1:]
# Inicializirajte spremenljivko rezultata
rezultat = 0
poskusite:
# Določite kratke in dolge možnosti getopt
možnosti, args = getopt.getopt (sys.argv [1:], 'a: s', ['add =', 'sub ='])
# Preberite vsako možnost z zanko for
za opt, arg v možnosti:
# Izračunajte vsoto, če je možnost -a ali --add
če se odločite ('-a', '--add'):
rezultat = int (argv [1]) + int (argv [2])
# Izračunajte odštevek, če je možnost -s ali --sub
elif opt in ('-s', '--sub'):
rezultat = int (argv [1]) - int (argv [2])
print ('Rezultat =', rezultat)
razen getopt.GetoptError:
# Če je napačna možnost, natisnite sporočilo o napaki
print ('Na voljo je napačna možnost')
# Prekinite skript
sys.izhod (2)
Izhod:
Zaženite skript brez kakršnih koli argumentov in možnosti, argumentov z možnostjo -a, argumentov z možnostjo '-s' in argumentov z napačno možnostjo.
Razčlenjevanje argumenta ukazne vrstice z uporabo modula argparse
Modul Argparse vsebuje veliko možnosti za branje argumentov ukazne vrstice. Privzete vrednosti argumentov, argument z vrsto podatkov, položajni argumenti, sporočilo pomoči itd. lahko zagotovi ta modul.
Primer 5: Branje argumentov ukazne vrstice z uporabo argparse
Naslednji primer prikazuje uporabo argparse modul za branje argumenta ukazne vrstice. Tu sta opredeljeni dve možnosti za branje argumentov ukazne vrstice. To so '-n' ali '-name' in '-e' ali '-email'. Če uporabnik navede kakršen koli napačen argument, bo prikazal napako s sporočilom o uporabi. Če uporabnik z argumenti poda pravilne možnosti, bo prikazal vrednosti argumentov. če uporabnik zažene skript z možnostjo '-help', bo zagotovil potrebno sporočilo za zagon skripta.
# Uvozi modul argparseuvoz argparse
# Uvozi modul sys
uvoz sys
# Deklariraj funkcijo za definiranje argumentov ukazne vrstice
def readOptions (args = sys.argv [1:]):
razčlenjevalnik = argparse.ArgumentParser (description = "Seznami ukazov za razčlenjevanje.")
razčlenjevalnik.add_argument ("- n", "--name", help = "Vnesite svoje ime.")
razčlenjevalnik.add_argument ("- e", "--email", help = "Vnesite svoj e-poštni naslov.")
opts = razčlenjevalnik.parse_args (args)
možnosti vrnitve
# Pokličite funkcijo za branje vrednosti argumentov
options = readOptions (sys.argv [1:])
natisni (možnosti.ime)
natisni (možnosti.E-naslov)
Izhod:
Zaženite skript z napačno možnostjo, pravilno možnostjo in možnostjo pomoči.
Zaključek:
V tej vadnici so razloženi različni načini branja argumentov ukazne vrstice z uporabo treh modulov python. Upam, da bo ta vadnica pomagala kodirniku, ki želi brati podatke z uporabo argumentov ukazne vrstice v pythonu.
Oglejte si avtorski video: tukaj