Krajta

Jak analyzovat argumenty na příkazovém řádku v Pythonu

Jak analyzovat argumenty na příkazovém řádku v Pythonu
Argumenty příkazového řádku se používají k předávání dat v programu v době provádění programu. Tato funkce je k dispozici ve většině populárních programovacích jazyků. Zpracování argumentů příkazového řádku se ale v různých jazycích liší. Hodnoty argumentů jsou uvedeny s názvem programu v době spuštění programu. Jazyk Python tuto funkci podporuje. V tomto článku je uvedeno, jak jsou argumenty příkazového řádku analyzovány ve skriptu Pythonu.

Analýza argumentu příkazového řádku pomocí sys modul

Argumenty příkazového řádku se ukládají do seznamu pomocí sys modul.  sys.argv se používá ke čtení hodnot argumentů příkazového řádku. Celkový počet argumentů příkazového řádku lze spočítat pomocí len () funkce. Použití tohoto modulu je popsáno v části článku.

Příklad 1: Načtení počtu argumentů a hodnot argumentů

Vytvořte soubor s následujícím skriptem pythonu.  Zde jsou hodnoty argumentů příkazového řádku uloženy v proměnné, argv jako jiné jazyky. len () metoda spočítá celkový počet argumentů předaných v době provádění skriptu. Hodnoty argumentů se vytisknou jako pole na konci skriptu.

# Importovat sys modul
import sys
# Tisknout celkový počet argumentů
print ('Celkem argumentů:', len (sys.argv))
print ('Hodnoty argumentů jsou:', str (sys.argv))

Výstup:

Výše uvedený skript se zde provádí pomocí čtyř argumentů příkazového řádku. Prvním argumentem je název skriptu a ostatní jsou číselné hodnoty. Po spuštění skriptu se zobrazí následující výstup.

Příklad 2: Čtení hodnot argumentů pomocí smyčky

V předchozím příkladu jsou hodnoty argumentů vytištěny jako pole. Vytvořte soubor s následujícím skriptem, který vytiskne typ proměnné argumentu a vytiskne každou hodnotu argumentu v každém řádku pomocí smyčky for.

# Importovat sys modul
import sys
# Vytiskněte typ proměnné, sys.argv
tisk (typ (sys.argv))
# Vytiskněte každý argument příkazového řádku v každém řádku
print ('Argumenty příkazového řádku jsou:')
pro i v sys.argv:
tisk (i)

Výstup:

Výše uvedený skript se provede zadáním tří argumentů s názvem skriptu. Po spuštění skriptu se zobrazí následující výstup.

Analýza argumentu příkazového řádku pomocí modulu getopt

Getopt modul se používá k analýze argumentů příkazového řádku s volbami. getopt () pro čtení argumentů se používá metoda tohoto modulu. Tato metoda má tři argumenty. První dva argumenty jsou povinné a poslední argument je volitelný. Použití těchto argumentů je uvedeno níže.

args: Obsahuje argument převzatý z argumentu příkazového řádku.

short_option: Může to být jakýkoli dopis, který projde argumentem.

long_option: Používá se k definování dlouhých možností se dvěma částmi. Jedná se o název možnosti a hodnotu možnosti.

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

Příklad 3: Čtení hodnot argumentů pomocí krátkých možností getopt

getopt modul obsahuje více funkcí než sys modul. Následující příklad ukazuje, jak lze použít krátké možnosti v getopt () metoda. argv proměnná uloží argumenty příkazového řádku vynecháním názvu skriptu. Dále jsou v možnosti definovány dvě možnosti getopt () metoda, kterou lze použít s argumentem za běhu. Pokud dojde k chybě, zobrazí se chybová zpráva.

# Import getopt modulu
import getopt
# Importovat sys modul
import sys
# Proměnná argumentu obchodu s vynecháním názvu skriptu
argv = sys.argv [1:]
 
Snaž se:
# Definujte krátké možnosti getopt
options, args = getopt.getopt (argv, 'x: y:')
# vytiskne možnosti a argumenty
tisk (možnosti)
tisk (args)
 
kromě getopt.GetoptError:
# Pokud je k dispozici nesprávná volba, vytiskněte chybovou zprávu
tisk ('Je poskytnuta nesprávná volba')
# Ukončete skript
sys.výstup (2)

Výstup:

Spusťte skript bez argumentů, argumentů se správnými možnostmi a argumentů se špatnou možností.

Příklad 4: Čtení hodnot argumentů pomocí krátkých a dlouhých možností getopt

Tento příklad ukazuje, jak lze použít krátké i dlouhé možnosti s hodnotami argumentů. Přidá dvě čísla, když '-A' nebo '-přidat' bude použito jako volba a odečte dvě čísla, když '-s ' nebo '-sub' bude použito jako volba v době běhu.

# Import getopt modulu
import getopt
# Importovat sys modul
import sys
# Proměnná argumentu obchodu s vynecháním názvu skriptu
argv = sys.argv [1:]
# Inicializovat výslednou proměnnou
výsledek = 0
 
Snaž se:
 
# Definujte krátké a dlouhé možnosti getopt
options, args = getopt.getopt (sys.argv [1:], 'a: s', ['add =', 'sub ='])
 
# Přečtěte si každou možnost pomocí smyčky for
pro opt, arg v možnostech:
# Vypočítejte součet, pokud je volba -a nebo --add
pokud se přihlásit ('-a', '--add'):
result = int (argv [1]) + int (argv [2])
# Vypočítejte suntraction, pokud je volba -s nebo --sub
elif opt in ('-s', '--sub'):
result = int (argv [1]) - int (argv [2])
 
print ('Result =', result)
kromě getopt.GetoptError:
# Pokud je k dispozici nesprávná volba, vytiskněte chybovou zprávu
tisk ('Je poskytnuta nesprávná volba')
# Ukončete skript
sys.výstup (2)

Výstup:

Spusťte skript bez jakýchkoli argumentů a možností, argumentů s možností '-a', argumentů s možností '-s' a argumentů s nesprávnou volbou.

Analýza argumentu příkazového řádku pomocí modulu argparse

Modul Argparse obsahuje spoustu možností pro čtení argumentů příkazového řádku. Výchozí hodnoty argumentů, argument s datovým typem, poziční argumenty, zpráva nápovědy atd. lze poskytnout tímto modulem.

Příklad 5: Čtení argumentů příkazového řádku pomocí argparse

Následující příklad ukazuje použití argparse modul pro čtení argumentů příkazového řádku. Zde jsou definovány dvě možnosti pro čtení argumentů příkazového řádku. Tyto jsou '-n' nebo '-name' a '-e' nebo '-email'. Pokud uživatel uvede nesprávný argument, zobrazí se chyba se zprávou o použití. Pokud uživatel poskytuje správné možnosti s argumenty, zobrazí hodnoty argumentů. pokud uživatel spustí skript s volbou '-help', pak poskytne potřebnou zprávu pro spuštění skriptu.

# Import argparse modulu
importovat argparse
# Importovat sys modul
import sys
# Deklarovat funkci k definování argumentů příkazového řádku
def readOptions (args = sys.argv [1:]):
parser = argparse.ArgumentParser (description = "Seznamy příkazů pro analýzu.")
analyzátor.add_argument ("- n", "--name", help = "Zadejte své jméno.")
analyzátor.add_argument ("- e", "--email", help = "Napište svůj e-mail.")
volí = analyzátor.parse_args (args)
návratové volby
# Voláním funkce přečtěte hodnoty argumentů
options = readOptions (sys.argv [1:])
tisk (možnosti.název)
tisk (možnosti.e-mailem)

Výstup:

Spusťte skript se špatnou volbou, správnou volbou a možností nápovědy.

Závěr:

V tomto kurzu jsou vysvětleny různé způsoby čtení argumentů příkazového řádku pomocí tří modulů pythonu. Doufám, že tento výukový program pomůže kodéru, který chce číst data pomocí argumentů příkazového řádku v pythonu.

Podívejte se na video autora: zde

Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...
Hry Užitečné nástroje pro hráče Linuxu
Užitečné nástroje pro hráče Linuxu
Pokud rádi hrajete hry na Linuxu, je pravděpodobné, že jste ke zlepšení herního zážitku použili aplikace a nástroje jako Wine, Lutris a OBS Studio. Kr...
Hry HD remasterované hry pro Linux, které nikdy dříve neměly vydání Linuxu
HD remasterované hry pro Linux, které nikdy dříve neměly vydání Linuxu
Mnoho vývojářů a vydavatelů her přichází s HD remasterem starých her, aby prodloužili životnost franšízy, prosím fanoušky, kteří požadují kompatibilit...