Hur man analyserar argument på kommandoraden i Python

How Parse Arguments Command Line Python



Kommandoradsargumenten används för att skicka data i programmet vid tidpunkten för programkörning. Denna funktion är tillgänglig på de flesta av de populära programmeringsspråken. Men behandlingen av kommandoradsargument är olika för olika språk. Argumentvärdena anges med programnamnet vid tidpunkten för programmet. Pythonspråk stöder den här funktionen. Hur kommandoradsargument analyseras i Python-skriptet visas i den här artikeln.

Analysera kommandoradsargument med sys modul

Kommandoradsargument lagras i en lista med sys modul. sys.argv används för att läsa värdena på kommandoradsargumenten. Det totala antalet kommandoradsargument kan räknas med len () fungera. Användningen av denna modul beskrivs i artikelns del.







Exempel 1: Läsa antalet argument och argumentvärden

Skapa en fil med följande python -skript. Här lagras kommandoradsargumentvärdena i variabeln, argv som andra språk. len () method räknar det totala antalet argument som skickades vid tidpunkten för körningen av skriptet. Argumentvärden skrivs ut som en array i slutet av skriptet.



# Importera sys -modul
importera sys

# Skriv ut totalt antal argument
skriva ut('Totala argument:', len(sys.argv))
skriva ut('Argumentvärdena är:', sid(sys.argv))

Produktion:



Ovanstående skript körs här med fyra kommandoradsargument. Det första argumentet är skriptnamnet och andra är numeriska värden. Följande utdata visas efter att manuset har körts.





Exempel 2: Läsa argumentvärden med hjälp av slingan



I föregående exempel skrivs argumentvärden ut som en array. Skapa en fil med följande skript för att skriva ut typen av argumentvariabel och skriva ut varje argumentvärde i varje rad med hjälp av för loop.

# Importera sys -modul
importera sys

# Skriv ut variabelns typ, sys.argv
skriva ut(typ(sys.argv))

# Skriv ut varje kommandoradsargument i varje rad
skriva ut('Kommandoradsargumenten är:')
förii sys.argv:
skriva ut(i)

Produktion:

Ovanstående skript körs genom att tillhandahålla tre argument med skriptnamnet. Följande utdata visas efter att manuset har körts.

Parsar kommandoradsargument med getopt-modulen

Toppad modul används för att analysera kommandoradsargument med alternativen. toppad () metod för denna modul används för att läsa argumenten. Denna metod har tre argument. De två första argumenten är obligatoriska och det sista argumentet är valfritt. Användningen av dessa argument ges nedan.

args: Den innehåller argumentet som tagits från kommandoradsargumentet.

short_option: Det kan vara vilken bokstav som helst som går med argumentet.

long_option: Den används för att definiera långa alternativ med två delar. Dessa är alternativnamnet och alternativvärdet.

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

Exempel 3: Läsa argumentvärden med korta getopt -alternativ

toppade modulen innehåller fler funktioner än sys modul. Följande exempel visar hur korta alternativ kan användas i toppad () metod. argv variabel lagrar kommandoradsargumenten genom att utelämna skriptnamnet. Därefter definieras två alternativ i toppad () metod som kan användas med argumentet vid körtiden. Om något fel uppstår visas ett felmeddelande.

# Importera getopt -modul
importera toppade

# Importera sys -modul
importera sys

# Spara argumentvariabel utan att skriptnamnet utelämnas
argv= sys.argv[1:]

Prova:
# Definiera korta alternativ för getopt
alternativ,args= toppade.toppade(argv, 'x: y:')

# skriv ut alternativen och argumentet
skriva ut(alternativ)
skriva ut(args)

bortsett från toppade.GetoptError:

# Skriv ut felmeddelandet om fel alternativ finns
skriva ut('Fel alternativ finns')

# Avsluta skriptet
sys.utgång(2)

Produktion:

Kör skriptet utan argument, argument med rätt alternativ och argument med fel alternativ.

Exempel 4: Läs argumentvärden med korta och långa getopt -alternativ

Detta exempel visar hur både korta och långa alternativ kan användas med argumentvärdena. Det kommer att lägga till två nummer när '-till' eller '-Lägg till' kommer att användas som ett alternativ och subtrahera två siffror när ' -s ' eller ' -sub' kommer att användas som ett alternativ vid körtiden.

# Importera getopt -modul
importera toppade

# Importera sys -modul
importera sys

# Spara argumentvariabel utan att skriptnamnet utelämnas
argv= sys.argv[1:]

# Initiera resultatvariabel
resultat=0

Prova:

# Definiera getopt korta och långa alternativ
alternativ,args= toppade.toppade(sys.argv[1:], 'som', ['add =','sub ='])

# Läs varje alternativ med för loop
förvälja,argialternativ:
# Beräkna summan om alternativet är -a eller --add
omväljai ('-till', '--Lägg till'):
resultat= int(argv[1])+int(argv[2])

# Beräkna suntraktionen om alternativet är -s eller --sub
elifväljai ('-s', '--sub'):
resultat= int(argv[1])-int(argv[2])

skriva ut('Resultat =',resultat)

bortsett från toppade.GetoptError:

# Skriv ut felmeddelandet om fel alternativ finns
skriva ut('Fel alternativ finns')

# Avsluta skriptet
sys.utgång(2)

Produktion:

Kör skriptet utan några argument och alternativ, argument med alternativet ‘-a’, argument med alternativet ‘-s’ och argument med fel alternativ.

Analysera kommandoradsargument med argparse-modul

Argparse-modulen innehåller många alternativ för att läsa kommandoradsargument. Standardargumentvärden, argumentet med datatyp, positionsargument, hjälpmeddelande etc. kan tillhandahållas av denna modul.

Exempel 5: Läsa kommandoradsargument med argparse

Följande exempel visar användningen av argparse modul för att läsa kommandoradsargument. Här definieras två alternativ för att läsa kommandoradsargument. Dessa är ‘-N’ eller ‘–name’ och '-E' eller '–email'. Om användaren ger något fel argument kommer det att visa ett fel med ett användarmeddelande. Om användaren tillhandahåller korrekta alternativ med argumenten visar den argumentvärdena. om användaren kör skriptet med alternativet ”–help” kommer det att ge nödvändigt meddelande för att köra skriptet.

# Importera argparse -modul
importeraargparse

# Importera sys -modul
importera sys

# Deklarera funktion för att definiera kommandoradsargument
defreadOptions(args=sys.argv[1:]):
parser =argparse.ArgumentParser(beskrivning='Parsing kommandon listor.')
parser.add_argument('-n', '--namn', hjälp='Skriv ditt namn.')
parser.add_argument('-Och', '--e-post', hjälp='Skriv din e -postadress.')
väljer= parser.parse_args(args)
lämna tillbakaväljer

# Ring funktionen för att läsa argumentvärdena
alternativ=readOptions(sys.argv[1:])
skriva ut(alternativ.namn)
skriva ut(alternativ.e-post)

Produktion:

Kör skriptet med fel alternativ, rätt alternativ och hjälpalternativ.

Slutsats:

Olika sätt att läsa kommandoradsargument förklaras i denna handledning med hjälp av tre python-moduler. Jag hoppas att denna handledning hjälper kodaren som vill läsa data med kommandoradsargument i python.

Se författarens video: här