Pytonorm

Hur man analyserar argument på kommandoraden i Python

Hur man analyserar argument på kommandoraden i Python
Kommandoradsargumenten används för att skicka data i programmet vid tidpunkten för programkörningen. Denna funktion är tillgänglig på de flesta av de populära programmeringsspråken. Men behandlingen av kommandoradsargument skiljer sig åt för olika språk. Argumentvärdena ges med programnamnet när programmet körs. Pythonspråk stöder den här funktionen. Hur kommandoradsargument tolkas i Python-skript visas i den här artikeln.

Tolkar kommandoradsargument med sys modul

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

Exempel 1: Läsning av antalet argument och argumentvärden

Skapa en fil med följande python-skript.  Här lagras argumentvärdena för kommandoraden i variabeln, argv som andra språk. len () metoden räknar det totala antalet argument som skickats när skriptet körs. Argumentvärden skrivs ut som en matris i slutet av skriptet.

# Importera sys-modul
importera sys
# Skriv ut totalt antal argument
skriv ut ('Totalt antal argument:', len (sys.argv))
print ('Argumentvärdena är:', str (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 körning av skriptet.

Exempel 2: Läsa argumentvärden med slingan

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

# Importera sys-modul
importera sys
# Skriv ut typen av variabeln sys.argv
skriva ut (typ (sys.argv))
# Skriv ut varje kommandoradsargument på varje rad
print ('Kommandoradsargumenten är:')
för jag i sys.argv:
skriva ut (i)

Produktion:

Ovanstående skript körs genom att tillhandahålla tre argument med skriptnamnet. Följande utdata visas efter körning av skriptet.

Analysera kommandoradsargument med hjälp av getopt-modulen

Getopt modulen används för att analysera kommandoradsargument med alternativen. getopt () 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.

argumenterar: Den innehåller argumentet från kommandoradsargumentet.

kort_alternativ: Det kan vara vilken bokstav som helst som passar med argumentet.

lång_alternativ: Den används för att definiera långa alternativ med två delar. Dessa är alternativets namn och alternativvärde.

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

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

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

# Importera getopt-modulen
importera getopt
# Importera sys-modul
importera sys
# Argumentvariabel för butik som utelämnar skriptnamnet
argv = sys.argv [1:]
 
Prova:
# Definiera korta alternativ för getopt
alternativ, args = getopt.getopt (argv, 'x: y:')
# skriv ut alternativen och argumentet
skriva ut (alternativ)
skriva ut (args)
 
utom getopt.GetoptError:
# Skriv ut felmeddelandet om fel alternativ finns
skriva ut ('Fel alternativ tillhandahålls')
# Avsluta skriptet
sys.utgång (2)

Produktion:

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

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

Det här exemplet visar hur både korta och långa alternativ kan användas med argumentvärdena. Det kommer att lägga till två siffror när '-a' 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örningstiden.

# Importera getopt-modulen
importera getopt
# Importera sys-modul
importera sys
# Argumentvariabel för butik som utelämnar skriptnamnet
argv = sys.argv [1:]
# Initiera resultatvariabel
resultat = 0
 
Prova:
 
# Definiera getopt korta och långa alternativ
alternativ, args = getopt.getopt (sys.argv [1:], 'a: s', ['add =', 'sub ='])
 
# Läs varje alternativ med hjälp av för loop
för opt, arg i alternativ:
# Beräkna summan om alternativet är -a eller --add
om opt in ('-a', '--add'):
resultat = int (argv [1]) + int (argv [2])
# Beräkna suntraction om alternativet är -s eller --sub
elif opt in ('-s', '--sub'):
resultat = int (argv [1]) - int (argv [2])
 
skriva ut ('Resultat =', resultat)
utom getopt.GetoptError:
# Skriv ut felmeddelandet om fel alternativ tillhandahålls
skriva ut ('Fel alternativ tillhandahålls')
# Avsluta skriptet
sys.utgång (2)

Produktion:

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

Analysera kommandoradsargument med argparse-modul

Argparse-modulen innehåller många alternativ för att läsa argument på kommandoraden. Standardargumentvärden, argumentet med datatypen, positionsargument, hjälpmeddelande osv. kan tillhandahållas av denna modul.

Exempel 5: Läsa kommandoradsargument med argparse

Följande exempel visar användningen av argparse modul för läsning av kommandoradsargument. Här definieras två alternativ för läsning av kommandoradsargument. Dessa är '-n' eller '-name' och '-e' eller '-email'. Om användaren ger fel argument kommer det att visa ett fel med ett användningsmeddelande. Om användaren tillhandahåller korrekta alternativ med argumenten kommer den att visa argumentvärdena. om användaren kör skriptet med alternativet '-hjälp' kommer det att ge nödvändigt meddelande för att köra skriptet.

# Importera argparse-modul
importera argparse
# Importera sys-modul
importera sys
# Deklarera funktion för att definiera kommandoradsargument
def readOptions (args = sys.argv [1:]):
parser = argparse.ArgumentParser (beskrivning = "Parsingkommandolistan.")
parser.add_argument ("- n", "--name", help = "Skriv ditt namn.")
parser.add_argument ("- e", "--email", help = "Skriv din e-postadress.")
opts = parser.parse_args (args)
returval
# 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 den här handledningen hjälper kodaren som vill läsa data med hjälp av kommandoradsargument i python.

Se författarens video: här

Bästa spelkonsolemulatorer för Linux
Den här artikeln listar populära spelkonsolemuleringsprogram som finns tillgängliga för Linux. Emulation är ett mjukvarukompatibilitetsskikt som emule...
Bästa Linux Distros för spel 2021
Linux-operativsystemet har kommit långt från sitt ursprungliga, enkla, serverbaserade utseende. Detta operativsystem har förbättrats enormt de senaste...
Hur du fångar och strömmar din spelsession på Linux
Tidigare betraktades spel bara som en hobby, men med tiden såg spelindustrin en enorm tillväxt när det gäller teknik och antalet spelare. Spelpubliken...