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 -modulimportera 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 -modulimportera 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 -modulimportera 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 -modulimporteraargparse
# 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