Python

Kako razčleniti argumente v ukazni vrstici v Pythonu

Kako razčleniti argumente v ukazni vrstici v Pythonu
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 različna. Vrednosti argumentov so podane z imenom programa v času izvajanja programa. Jezik Python podpira to funkcijo. Kako se razčlenjujejo argumenti ukazne vrstice v skriptu Python, je prikazano v tem članku.

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 sys
uvoz 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 sys
uvoz 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 getopt
uvozi 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 getopt
uvozi 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 argparse
uvoz 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

Vadnica za OpenTTD
OpenTTD je ena izmed najbolj priljubljenih poslovnih simulacijskih iger. V tej igri morate ustvariti čudovit prevozniški posel. Vendar boste začeli na...
SuperTuxKart za Linux
SuperTuxKart je odličen naslov, zasnovan tako, da vam brezplačno ponuja izkušnjo Mario Kart v vašem sistemu Linux. Igrati je precej zahtevno in zabavn...
Vadnica za bitko za Wesnoth
Bitka za Wesnoth je ena izmed najbolj priljubljenih odprtokodnih strateških iger, ki jih lahko trenutno igrate. Ne samo, da se ta igra razvija že zelo...