Hogyan kell elemezni az érveket a parancssorban a Pythonban

How Parse Arguments Command Line Python



A parancssori argumentumok arra szolgálnak, hogy adatokat továbbítsanak a programban a program végrehajtása idején. Ez a funkció a legtöbb népszerű programozási nyelven elérhető. De a parancssori argumentumok feldolgozása különböző nyelveken eltérő. Az argumentumértékeket a program nevével együtt adjuk meg a program futtatásakor. A Python nyelv támogatja ezt a funkciót. Ebben a cikkben bemutatjuk, hogyan értelmezik a parancssori argumentumokat a Python-szkriptben.

Parancssori argumentum elemzése a használatával sys modul

A parancssori argumentumok a listában tárolhatók a használatával sys modul. sys.argv a parancssori argumentumok értékeinek olvasására szolgál. A parancssori argumentumok számát a segítségével lehet megszámolni len () funkció. Ennek a modulnak a használatát a cikk részben ismertetjük.







1. példa: Az argumentumok és argumentumértékek leolvasása

Hozzon létre egy fájlt a következő python -szkripttel. Itt a parancssori argumentumok értékei a változóban tárolódnak, argv mint más nyelvek. len () metódus megszámolja a szkript végrehajtásakor átadott összes argumentum számát. Az argumentumértékek tömbként kerülnek nyomtatásra a szkript végén.



# Importálja a sys modult
import sys

# Nyomtassa ki az összes argumentumot
nyomtatás('Összes érv:', len(sys.argv))
nyomtatás('Az argumentum értékei:', o(sys.argv))

Kimenet:



A fenti szkript itt négy parancssori argumentum használatával kerül végrehajtásra. Az első érv a szkript neve, a többi pedig számérték. A szkript futtatása után a következő kimenet jelenik meg.





2. példa: Az argumentumértékek beolvasása a ciklus segítségével



Az előző példában az argumentumértékeket tömbként nyomtatják ki. Hozzon létre egy fájlt az alábbi parancsfájllal az argumentumváltozó típusának kinyomtatásához, és minden argumentum értékét minden sorban a ciklus használatával.

# Importálja a sys modult
import sys

# Nyomtassa ki a sys.argv változó típusát
nyomtatás(típus(sys.argv))

# Nyomtassa ki minden parancssori argumentumot minden sorban
nyomtatás('A parancssori érvek a következők:')
számáraénban ben sys.argv:
nyomtatás(én)

Kimenet:

A fenti szkript három argumentum megadásával kerül végrehajtásra a szkript nevével. A szkript futtatása után a következő kimenet jelenik meg.

Parancssori argumentum elemzése a getopt modul használatával

Felül modul a parancssori argumentumok elemzésére szolgál az opciókkal. tetején () ennek a modulnak a módszere az argumentumok olvasására szolgál. Ennek a módszernek három érve van. Az első két érv kötelező, az utolsó pedig nem kötelező. Ezen érvek felhasználását az alábbiakban ismertetjük.

args: A parancssori argumentumból vett argumentumot tartalmazza.

short_option: Bármilyen betű lehet, amely az érvvel együtt jár.

long_option: Két részből álló hosszú opciók meghatározására szolgál. Ezek az opció neve és az opció értéke.

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

3. példa: Az argumentumértékek leolvasása a rövid getopt beállítások használatával

tetején modul több funkciót tartalmaz, mint sys modul. A következő példa bemutatja, hogyan használhatók a rövid opciók tetején () módszer. argv változó tárolja a parancssori argumentumokat a szkript nevének elhagyásával. Ezután két lehetőséget definiálunk a tetején () metódus, amely futás közben használható az argumentummal. Ha bármilyen hiba történik, hibaüzenet jelenik meg.

# Importálja a getopt modult
import tetején

# Importálja a sys modult
import sys

# Tárolja az argumentumváltozót, kihagyva a szkript nevét
argv= sys.argv[1:]

próbáld ki:
# Határozza meg a getopt rövid lehetőségeket
lehetőségek,args= tetején.tetején(argv, 'x: y:')

# nyomtassa ki a beállításokat és az argumentumot
nyomtatás(lehetőségek)
nyomtatás(args)

kivéve tetején.GetoptError:

# Nyomtassa ki a hibaüzenetet, ha rossz lehetőség van megadva
nyomtatás('Rossz lehetőség van megadva')

# Szüntesse meg a szkriptet
sys.kijárat(2)

Kimenet:

Futtassa a szkriptet minden érv nélkül, a helyes opciókkal rendelkező érveket és a rossz opcióval rendelkező argumentumokat.

4. példa: Az argumentumértékek leolvasása rövid és hosszú getopt beállítások használatával

Ez a példa bemutatja, hogy a rövid és a hosszú beállítások hogyan használhatók az argumentumértékekkel. Két számot ad hozzá, amikor '-nak nek' vagy ‘–Add’ opcióként fogják használni, és kivonni két számot, ha -s ’ vagy ' -alatti' opcióként fogják használni a futási időben.

# Importálja a getopt modult
import tetején

# Importálja a sys modult
import sys

# Tárolja az argumentumváltozót, kihagyva a szkript nevét
argv= sys.argv[1:]

# Inicializálja az eredményváltozót
eredmény=0

próbáld ki:

# Határozza meg a rövid és hosszú lehetőségek kiválasztását
lehetőségek,args= tetején.tetején(sys.argv[1:], 'mint', ['add =','sub ='])

# Olvassa el az összes opciót a hurok használatával
számáradönt,mérgesban benlehetőségek:
# Számítsa ki az összeget, ha az opció -a vagy --add
hadöntban ben ('-nak nek', '--add'):
eredmény= int(argv[1])+int(argv[2])

# Számítsa ki a suntrakciót, ha az opció -s vagy --sub
elifdöntban ben ('-s', '--alatti'):
eredmény= int(argv[1])-int(argv[2])

nyomtatás('Eredmény =',eredmény)

kivéve tetején.GetoptError:

# Nyomtassa ki a hibaüzenetet, ha rossz lehetőség van megadva
nyomtatás('Rossz lehetőség van megadva')

# Szüntesse meg a szkriptet
sys.kijárat(2)

Kimenet:

Futtassa a szkriptet minden érv és opció nélkül, az „-a” opcióval rendelkező argumentumokat, az „-s” opcióval rendelkező argumentumokat és a rossz opcióval rendelkező argumentumokat.

Parancssori argumentum elemzése argparse modul használatával

Az Argparse modul számos lehetőséget tartalmaz a parancssori argumentumok olvasására. Ez a modul megadhatja az alapértelmezett argumentumértékeket, az adattípussal rendelkező argumentumot, a pozícióbeli érveket, a súgóüzenetet stb.

5. példa: Parancssori argumentumok olvasása argparse használatával

A következő példa a használatát mutatja be argparse modul a parancssori argumentum olvasására. Itt két lehetőség van definiálva a parancssori argumentumok olvasásához. Ezek „-N” vagy „–név” és „-E” vagy „–email”. Ha a felhasználó hibás érveket ad meg, akkor hibaüzenetet jelenít meg egy használati üzenettel. Ha a felhasználó helyes beállításokat ad meg az argumentumokkal, akkor megjeleníti az argumentumértékeket. ha a felhasználó a „–help” opcióval futtatja a szkriptet, akkor megadja a szkript futtatásához szükséges üzenetet.

# Importálja az argparse modult
importargparse

# Importálja a sys modult
import sys

# Declare függvény a parancssori argumentumok meghatározásához
defreadOptions(args=sys.argv[1:]):
elemző =argparse.ArgumentParser(leírás='Az elemzési parancsok listája.')
elemző.add_argument('-n', '--név', Segítség='Írja be a nevét.')
elemző.add_argument('-És', '--email', Segítség='Írja be az e -mail címét.')
választ= elemző.parse_args(args)
Visszatérésválaszt

# Hívja meg a függvényt az argumentumértékek leolvasásához
lehetőségek=readOptions(sys.argv[1:])
nyomtatás(lehetőségek.név)
nyomtatás(lehetőségek.email)

Kimenet:

Futtassa a szkriptet rossz beállítással, helyes opcióval és súgóval.

Következtetés:

Ebben az oktatóanyagban a parancssori argumentumok olvasásának különböző módjait ismertetjük három python modul használatával. Remélem, ez az oktatóanyag segíteni fog a kódolónak, aki a python parancssori argumentumaival akar adatokat olvasni.

Tekintse meg a szerző videóját: itt