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

How Parse Arguments Command Line Python



Argumenty příkazového řádku se používají k předání dat v programu v době spuště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 však 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 ukázáno, 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 jsou uloženy do seznamu pomocí sys modul. sys.argv slouží ke čtení hodnot argumentů příkazového řádku. Celkový počet argumentů příkazového řádku lze spočítat pomocí jen () funkce. Použití tohoto modulu je popsáno v části článku.







Příklad 1: Č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. jen () metoda počítá celkový počet argumentů předaných v době spuštění skriptu. Hodnoty argumentů jsou vytištěny jako pole na konci skriptu.



# Importujte modul sys
import sys

# Vytiskněte celkový počet argumentů
tisk('Celkem argumentů:', jen(sys.argv))
tisk('Hodnoty argumentů jsou:', p(sys.argv))

Výstup:



Výše uvedený skript se zde spouští pomocí čtyř argumentů příkazového řádku. První argument 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í cyklu for.

# Importujte modul sys
import sys

# Vytiskněte typ proměnné sys.argv
tisk(typ(sys.argv))

# Vytiskněte každý argument příkazového řádku na každém řádku
tisk('Argumenty příkazového řádku jsou:')
prov sys.argv:
tisk()

Výstup:

Výše uvedený skript se spustí 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

Pokryto modul slouží k analýze argumentů příkazového řádku s možnostmi. pokryto () metoda tohoto modulu slouží ke čtení argumentů. Tato metoda má tři argumenty. První dva argumenty jsou povinné a poslední argument je nepovinný. Použití těchto argumentů je uvedeno níže.

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

short_option: Může to být jakékoli písmeno, které projde s argumentem.

long_option: Slouží k definování dlouhých možností se dvěma částmi. Toto jsou název možnosti a hodnota volby.

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

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

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

# Importujte modul getopt
import pokryto

# Importujte modul sys
import sys

# Uložit proměnnou argumentu bez názvu skriptu
argv= sys.argv[1:]

Snaž se:
# Definujte krátké možnosti getopt
možnosti,args= pokryto.pokryto(argv, 'x: y:')

# vytiskněte možnosti a argument
tisk(možnosti)
tisk(args)

až na pokryto.GetoptError:

# Pokud je uvedena nesprávná možnost, vytiskněte chybovou zprávu
tisk(„Je uvedena špatná 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 volbou.

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

Tento příklad ukazuje, jak lze s hodnotami argumentů použít krátké i dlouhé možnosti. Kdy přidá dvě čísla '-na' nebo '-přidat' bude použit jako možnost a odečte dvě čísla, když „ -s nebo ‘ -sub' bude použit jako volitelná možnost za běhu.

# Importujte modul getopt
import pokryto

# Importujte modul sys
import sys

# Uložit proměnnou argumentu bez názvu skriptu
argv= sys.argv[1:]

# Inicializujte proměnnou výsledku
výsledek=0

Snaž se:

# Definujte getopt krátké a dlouhé možnosti
možnosti,args= pokryto.pokryto(sys.argv[1:], 'tak jako', ['add =','sub ='])

# Přečtěte si každou možnost pomocí cyklu for
proopt,rozzlobenývmožnosti:
# Vypočítejte součet, pokud je možnost -a nebo --add
-lioptv ('-na', '--přidat'):
výsledek= int(argv[1])+int(argv[2])

# Vypočítejte suntraction, pokud je volba -s nebo --sub
elifoptv ('-s', '--sub'):
výsledek= int(argv[1])-int(argv[2])

tisk('Výsledek =',výsledek)

až na pokryto.GetoptError:

# Pokud je uvedena nesprávná možnost, vytiskněte chybovou zprávu
tisk(„Je uvedena špatná volba“)

# Ukončete skript
sys.výstup(2)

Výstup:

Spusťte skript bez argumentů a voleb, argumentů s volbou „-a“, argumentů s volbou „-s“ a argumentů se špatnou volbou.

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

Modul Argparse obsahuje spoustu možností pro čtení argumentů příkazového řádku. Tento modul může poskytovat výchozí hodnoty argumentů, argument s datovým typem, poziční argumenty, zprávu nápovědy atd.

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

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

# Importujte modul argparse
importargparse

# Importujte modul sys
import sys

# Deklarace funkce k definování argumentů příkazového řádku
defreadMožnosti(args=sys.argv[1:]):
analyzátor =argparse.ArgumentParser(popis='Seznamy příkazů pro analýzu.')
analyzátor.add_argument('-n', '--název', Pomoc='Napiš své jméno.')
analyzátor.add_argument('-A', '--e-mailem', Pomoc='Zadejte svůj e -mail.')
volí= analyzátor.parse_args(args)
vrátit sevolí

# Zavolejte funkci a přečtěte si hodnoty argumentů
možnosti=readMožnosti(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 tutoriál pomůže kodérovi, který chce číst data pomocí argumentů příkazového řádku v pythonu.

Podívejte se na autorské video: tady