Piton

Az argumentumok elemzése a parancssorban a Pythonban

Az argumentumok elemzése a parancssorban a Pythonban
A parancssori argumentumokat a program végrehajtásának idején adják át a programban. Ez a szolgáltatás elérhető a legnépszerűbb programozási nyelveken. De a parancssori argumentumok feldolgozása különböző nyelveken eltérő. Az argumentum értékeket a program futtatásakor a program nevével együtt adjuk meg. A Python nyelv támogatja ezt a funkciót. A parancssori argumentumok elemzését a Python szkriptben ez a cikk mutatja.

Parancssori argumentum elemzése a sys modul

A parancssori argumentumokat a listával tárolja a sys modul.  sys.argv a parancssori argumentumok értékeinek leolvasására szolgál. A paranccsal meg lehet számlálni a parancssori argumentumok teljes számát len () funkció. Ennek a modulnak a használatát a cikk részben ismertetjük.

1. példa: Az argumentumok és az argumentumok számának kiolvasása

Hozzon létre egy fájlt a következő python szkript segítségével.  Itt a parancssori argumentumértékek tárolódnak a változóban, argv mint más nyelvek. len () A metódus megszámolja az összes argumentum számát, amelyet a parancsfájl végrehajtása során adtak át. Az argumentumértékek tömbként vannak nyomtatva a szkript végén.

# Sys modul importálása
import sys
# Teljes argumentumszám kinyomtatása
print ('Összes argumentum:', len (sys.argv))
print ('Az argumentum értékei:', str (sys.argv))

Kimenet:

A fenti parancsfájl itt négy parancssori argumentummal kerül végrehajtásra. Az első argumentum a szkript neve, mások pedig numerikus értékek. A következő kimenet jelenik meg a szkript futtatása után.

2. példa: Argumentumértékek olvasása a hurok segítségével

Az előző példában az argumentumértékeket tömbként nyomtatjuk ki. Hozzon létre egy fájlt a következő szkript segítségével az argumentumváltozó típusának kinyomtatásához, és nyomtassa ki az egyes sorok argumentumait a ciklus használatával.

# Sys modul importálása
import sys
# Nyomtassa ki a változó típusát, sys.argv
print (típus (sys.argv))
# Nyomtassa ki az egyes sorok minden parancssori argumentumát
print ('A parancssori argumentumok a következők:')
mert én a sys-ben.argv:
nyomtatás (i)

Kimenet:

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

Parancssori argumentum elemzése a getopt modul segítségével

Getopt A modult a parancssori argumentumok elemzésére használják az opciókkal. getopt () ennek a modulnak a metódusát használják az argumentumok elolvasására. 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 adjuk meg.

érvel: A parancssori argumentumból vett argumentumot tartalmazza.

short_option: Bármely betű lehet, amely megfelel az érvelésnek.

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

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

3. példa: Argumentumértékek kiolvasása rövid getopt opciók használatával

getopt modul több funkciót tartalmaz, mint sys modul. Az alábbi példa bemutatja, hogy a rövid opciók hogyan használhatók getopt () módszer. argv változó tárolja a parancssori argumentumokat a szkript nevének kihagyásával. Ezután két lehetőséget határoz meg a getopt () metódus, amely a futás idején használható az argumentummal. Ha bármilyen hiba történik, hibaüzenet jelenik meg.

# Getopt modul importálása
import getopt
# Sys modul importálása
import sys
# Tárolja az argumentumváltozót, a szkript nevét kihagyva
argv = sys.argv [1:]
 
próbáld ki:
# Definiálja a getopt rövid opcióit
opciók, args = getopt.getopt (argv, 'x: y:')
# nyomtassa ki az opciókat és az argumentumot
nyomtatás (opciók)
nyomtatás (args)
 
a getopt kivételével.GetoptError:
# Ha rossz opciót ad meg, nyomtassa ki a hibaüzenetet
nyomtatás ('Rossz opció van megadva')
# Fejezze be a szkriptet
sys.kijárat (2)

Kimenet:

Futtassa a szkriptet érvek, argumentumok helyes opciókkal és rossz opcióval rendelkező argumentumok nélkül.

4. példa: Argumentumértékek kiolvasása rövid és hosszú getopt opciók használatával

Ez a példa bemutatja, hogyan lehet mind a rövid, mind a hosszú opciókat használni az argumentumértékekkel. Két számot ad hozzá, amikor '-a' vagy '-add' opcióként fog használni, és vonjon ki két számot, ha '-s ' vagy '-alatti' futás közben opcióként fogják használni.

# Getopt modul importálása
import getopt
# Sys modul importálása
import sys
# Tárolja az argumentumváltozót, a szkript nevét kihagyva
argv = sys.argv [1:]
# Inicializálja az eredményváltozót
eredmény = 0
 
próbáld ki:
 
# Definiálja a getopt rövid és hosszú opciókat
opciók, args = getopt.getopt (sys.argv [1:], 'a: s', ['add =', 'sub ='])
 
# Olvassa el az egyes lehetőségeket a ciklushoz használva
opcióhoz, arg az opciókban:
# Számolja ki az összeget, ha az opció -a vagy --add
ha engedélyezi ('-a', '--add'):
eredmény = int (argv [1]) + int (argv [2])
# Számítsa ki a napkivonást, ha az opció -s vagy --sub
elif opt in ('-s', '--sub'):
eredmény = int (argv [1]) - int (argv [2])
 
nyomtatás ('Eredmény =', eredmény)
a getopt kivételével.GetoptError:
# Nyomja meg a hibaüzenetet, ha rossz opciót ad meg
nyomtatás ('Rossz opció van megadva')
# Fejezze be a szkriptet
sys.kijárat (2)

Kimenet:

Futtassa a szkriptet érvek és opciók nélkül, argumentumok '-a' opcióval, argumentumok '-s' opcióval és argumentumok rossz opcióval.

Parancssori argumentum elemzése argparse modul segítségével

Az Argparse modul sok lehetőséget tartalmaz a parancssori argumentumok olvasására. Alapértelmezett argumentumértékek, argumentum az adattípussal, helyzeti argumentumok, súgóüzenet stb. ez a modul biztosíthatja.

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

A következő példa a argparse modul a parancssori argumentum leolvasásához. Itt két lehetőség van megadva a parancssori argumentumok olvasásához. Ezek '-n' vagy '-name' és „-e” vagy „-email”. Ha a felhasználó hibás argumentumot ad meg, akkor hiba jelenik meg egy használati üzenettel együtt. Ha a felhasználó megfelelő opciókat ad meg az argumentumokkal, akkor az argumentum értékeket jeleníti meg. ha a felhasználó a '-help' opcióval futtatja a szkriptet, akkor a szkript futtatásához szükséges üzenetet ad.

# Argparse modul importálása
import argparse
# Sys modul importálása
import sys
# Funkció deklarálása a parancssori argumentumok meghatározásához
def readOptions (args = sys.argv [1:]):
parser = argparse.ArgumentParser (description = "Az elemző parancsok listája.")
elemző.add_argument ("- n", "--name", help = "Írja be a nevét.")
elemző.add_argument ("- e", "--email", help = "Írja be az e-mailt.")
választ = elemző.parse_args (args)
visszatér választ
# Hívja meg a függvényt az argumentumértékek beolvasásához
options = readOptions (sys.argv [1:])
nyomtatás (opciók.név)
nyomtatás (opciók.email)

Kimenet:

Futtassa a szkriptet rossz opcióval, helyes opcióval és súgó opcióval.

Következtetés:

A parancssori argumentumok olvasásának különféle módjait ismerteti ez az oktatóanyag három python modul használatával. Remélem, ez az oktatóanyag segít a kódolónak, aki adatokat akar olvasni a parancssori argumentumok segítségével a pythonban.

Nézd meg a szerző videóját: itt

OpenTTD bemutató
Az OpenTTD az egyik legnépszerűbb üzleti szimulációs játék. Ebben a játékban létre kell hoznia egy csodálatos szállítási vállalkozást. Azonban kezdete...
SuperTuxKart Linuxhoz
A SuperTuxKart egy nagyszerű cím, amelynek célja, hogy ingyenesen hozza el a Mario Kart élményét Linux rendszerén. Elég kihívást jelentő és szórakozta...
Csata a Wesnoth bemutatóért
A Battle for Wesnoth az egyik legnépszerűbb nyílt forráskódú stratégiai játék, amelyet jelenleg játszhatsz. Ez a játék nem csak nagyon hosszú ideje fe...