Kako razčleniti argumente v ukazni vrstici v Pythonu

How Parse Arguments Command Line Python



Argumenti ukazne vrstice se uporabljajo za posredovanje podatkov v programu v času izvajanja programa. Ta funkcija je na voljo v večini priljubljenih programskih jezikov. Toda obdelava argumentov ukazne vrstice je za različne jezike drugačna. Vrednosti argumentov so podane z imenom programa v času izvajanja programa. Jezik Python podpira to funkcijo. Kako so argumenti ukazne vrstice razčlenjeni v skriptu Python, je prikazano v tem članku.

Razčlenitev argumenta ukazne vrstice z uporabo sys modul

Argumenti ukazne vrstice so shranjeni 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 tako kot drugi jeziki. len () metoda šteje skupno število argumentov, prenesenih v času izvajanja skripta. Argumentne vrednosti so natisnjene kot matrika na koncu skripta.



# Uvozi sys modul
uvoz sys

# Natisnite skupno število argumentov
tiskanje('Skupni argumenti:', len(sys.argv))
tiskanje('Vrednosti argumentov so:', str(sys.argv))

Izhod:



Zgornji skript se tukaj izvede s štirimi argumenti ukazne vrstice. Prvi argument je ime skripta, drugi pa so številske 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 natisnete vsako vrednost argumenta v vsaki vrstici z uporabo zanke for.

# Uvozi sys modul
uvoz sys

# Natisnite vrsto spremenljivke, sys.argv
tiskanje(tip(sys.argv))

# Natisnite vsak argument ukazne vrstice v vsaki vrstici
tiskanje('Argumenti ukazne vrstice so:')
zajazv sys.argv:
tiskanje(jaz)

Izhod:

Zgornji skript se izvede tako, da navede tri argumente z imenom skripta. Po zagonu skripta se prikaže naslednji izhod.

Razčlenitev argumenta ukazne vrstice z uporabo modula getopt

Vrh module se uporablja za razčlenjevanje argumentov ukazne vrstice z možnostmi. na vrhu () metoda tega modula se uporablja za branje argumentov. Ta metoda ima tri argumente. Prva dva argumenta sta obvezna, zadnji pa neobvezen. Spodaj so navedene uporabe teh argumentov.

args: Vsebuje argument, vzet iz argumenta ukazne vrstice.

short_option: Lahko je katera koli črka, ki se poda skupaj z argumentom.

long_option: Uporablja se za opredelitev dolgih možnosti iz dveh delov. To sta ime možnosti in vrednost možnosti.

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

Primer 3: Branje vrednosti argumentov z uporabo kratkih možnosti getopt

na vrhu modul vsebuje več funkcij kot sys modul. Naslednji primer prikazuje, kako je mogoče uporabiti kratke možnosti na vrhu () metoda. argv spremenljivka bo shranila argumente ukazne vrstice tako, da izpusti ime skripta. Nato sta v na vrhu () metodo, ki jo je mogoče uporabiti z argumentom med izvajanjem. Če pride do napake, se prikaže sporočilo o napaki.

# Uvozi modul getopt
uvoz na vrhu

# Uvozi sys modul
uvoz sys

# Spremenljivka argumenta shrani ime skripta
argv= sys.argv[1:]

poskusite:
# Določite kratke možnosti getopt
opcije,args= na vrhu.na vrhu(argv, 'x: y:')

# natisnite možnosti in argument
tiskanje(opcije)
tiskanje(args)

razen na vrhu.Napaka GetoptError:

# Natisnite sporočilo o napaki, če je na voljo napačna možnost
tiskanje('Na voljo je napačna možnost')

# Prekinite skript
sys.izhod(2)

Izhod:

Zaženite skript brez argumentov, argumente s pravilnimi možnostmi in argumente z napačno možnostjo.

Primer 4: Branje vrednosti argumentov z uporabo kratkih in dolgih možnosti getopt

Ta primer prikazuje, kako se lahko kratke in dolge možnosti uporabljajo z vrednostmi argumentov. Ko bo dodal dve številki '-to' ali ' - dodaj' bo uporabljena kot možnost in odšteje dve številki, ko ' -s ' ali ' - pod « bo uporabljena kot možnost med izvajanjem.

# Uvozi modul getopt
uvoz na vrhu

# Uvozi sys modul
uvoz sys

# Spremenljivka argumenta shrani ime skripta
argv= sys.argv[1:]

# Inicializirajte spremenljivko rezultata
rezultat=0

poskusite:

# Določite kratke in dolge možnosti getopt
opcije,args= na vrhu.na vrhu(sys.argv[1:], 'a: s', ['add =','sub ='])

# Preberite vsako možnost z uporabo zanke for
zaopt,jezenvopcije:
# Izračunajte vsoto, če je možnost -a ali --add
čeoptv ('-to', '--dodaj'):
rezultat= int(argv[1])+int(argv[2])

# Izračunajte odštevanje, če je možnost -s ali --sub
elifoptv ('-s', '--sub'):
rezultat= int(argv[1])-int(argv[2])

tiskanje('Rezultat =',rezultat)

razen na vrhu.Napaka GetoptError:

# Natisnite sporočilo o napaki, če je na voljo napačna možnost
tiskanje('Na voljo je napačna možnost')

# Prekinite skript
sys.izhod(2)

Izhod:

Zaženite skript brez argumentov in možnosti, argumentov z možnostjo '-a', argumentov z možnostjo '-s' in argumentov z napačno možnostjo.

Razčlenitev argumenta ukazne vrstice z uporabo modula argparse

Modul Argparse vsebuje veliko možnosti za branje argumentov ukazne vrstice. Ta modul lahko zagotovi privzete vrednosti argumentov, argument s podatkovnim tipom, pozicijske argumente, sporočilo pomoči itd.

Primer 5: Branje argumentov ukazne vrstice z uporabo argparse

Naslednji primer prikazuje uporabo argparse modul za branje argumentov ukazne vrstice. Tu sta definirani dve možnosti za branje argumentov ukazne vrstice. To so '-N' ali '-name' in '-E' ali '-email'. Če uporabnik navede napačen argument, se prikaže sporočilo o uporabi z napako. Če uporabnik z argumenti navede 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 argparse
uvozargparse

# Uvozi sys modul
uvoz sys

# Razglasi funkcijo za definiranje argumentov ukazne vrstice
defreadOptions(args=sys.argv[1:]):
razčlenjevalnik =argparse.ArgumentParser(opis='Seznami ukazov za razčlenjevanje.')
razčlenjevalnik.add_argument('-n', '-ime', pomoč='Vnesite svoje ime.')
razčlenjevalnik.add_argument('-In', '--E-naslov', pomoč='Vnesite svoj e -poštni naslov.')
se odloči= razčlenjevalnik.parse_args(args)
vrnitevse odloči

# Pokličite funkcijo, da preberete vrednosti argumentov
opcije=readOptions(sys.argv[1:])
tiskanje(opcije.ime)
tiskanje(opcije.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 s pomočjo treh modulov python. Upam, da bo ta vadnica pomagala kodirniku, ki želi brati podatke z uporabo argumentov ukazne vrstice v pythonu.

Oglejte si avtorjev video: tukaj