Kuidas sõeluda argumente käsurealt Pythonis

How Parse Arguments Command Line Python



Käsurea argumente kasutatakse andmete edastamiseks programmis programmi täitmise ajal. See funktsioon on saadaval enamikus populaarsetes programmeerimiskeeltes. Kuid käsurea argumentide töötlemine on eri keelte puhul erinev. Argumentide väärtused antakse koos programmi nimega programmi käivitamise ajal. Pythoni keel toetab seda funktsiooni. Selles artiklis on näidatud, kuidas käsurea argumente Pythoni skriptis parsitakse.

Käsurea argumendi sõelumine kasutades sys moodul

Käsurea argumendid salvestatakse loendisse, kasutades sys moodul. sys.argv kasutatakse käsurea argumentide väärtuste lugemiseks. Käsurea argumentide koguarvu saab loendada, kasutades len () funktsiooni. Selle mooduli kasutamist kirjeldatakse artikli osas.







Näide 1: Argumentide arvu ja argumentide väärtuste lugemine

Looge fail järgmise pythoni skriptiga. Siin salvestatakse käsurea argumentide väärtused muutujale, argv nagu teised keeled. len () meetod loeb skripti täitmise ajal edastatud argumentide koguarvu. Argumendi väärtused trükitakse massiivina skripti lõppu.



# Impordi sys moodul
import sys

# Printige argumentide koguarv
printida('Kokku argumente:', len(sys.argv))
printida('Argumendi väärtused on järgmised:', lk(sys.argv))

Väljund:



Ülaltoodud skript käivitatakse siin nelja käsurea argumendi abil. Esimene argument on skripti nimi ja teised numbrilised väärtused. Pärast skripti käivitamist kuvatakse järgmine väljund.





Näide 2: argumendi väärtuste lugemine silmuse abil



Eelmises näites trükitakse argumentide väärtused massiivina. Looge argumendi muutuja tüübi printimiseks järgmise skriptiga fail ja printige iga rea ​​iga argumendi väärtus, kasutades tsüklit.

# Impordi sys moodul
import sys

# Printige muutuja tüüp sys.argv
printida(tüüpi(sys.argv))

# Printige iga rea ​​iga käsurea argument
printida('Käsurea argumendid on järgmised:')
eestisisse sys.argv:
printida(i)

Väljund:

Ülaltoodud skript käivitatakse, esitades skripti nimega kolm argumenti. Pärast skripti käivitamist kuvatakse järgmine väljund.

Käsurea argumendi sõelumine mooduli getopt abil

Topitud moodulit kasutatakse käsurea argumentide analüüsimiseks valikutega. üleval () selle mooduli meetodit kasutatakse argumentide lugemiseks. Sellel meetodil on kolm argumenti. Kaks esimest argumenti on kohustuslikud ja viimane argument on valikuline. Nende argumentide kasutusviisid on toodud allpool.

args: See sisaldab käsurea argumendist võetud argumenti.

lühike_valik: See võib olla mis tahes täht, mis argumendiga kaasneb.

pikk_optsioon: Seda kasutatakse kahe osaga pikkade valikute määratlemiseks. Need on valiku nimi ja valiku väärtus.

Süntaks: getopt.getopt (argid, lühike valik, [pikk valik])

Näide 3: Argumendi väärtuste lugemine lühikeste getopt -suvandite abil

ülaosaga moodul sisaldab rohkem funktsioone kui sys moodul. Järgmine näide näitab, kuidas lühikesi valikuid saab kasutada üleval () meetod. argv muutuja salvestab käsurea argumendid, jättes skripti nime välja. Järgmisena on jaotises määratletud kaks võimalust üleval () meetodit, mida saab kasutada argumendiga käitamise ajal. Kui ilmneb tõrge, kuvatakse veateade.

# Impordi moodul Getopt
import ülaosaga

# Impordi sys moodul
import sys

# Salvestage argumendi muutuja, jättes skripti nime välja
argv= sys.argv[1:]

proovige:
# Määratlege lühikesed valikud
võimalusi,args= ülaosaga.ülaosaga(argv, 'x: y:')

# printige suvandid ja argument
printida(võimalusi)
printida(args)

välja arvatud ülaosaga.GetoptError:

# Kui vale valik on saadaval, printige veateade
printida('Pakutakse vale valikut')

# Lõpetage skript
sys.väljumine(2)

Väljund:

Käivitage skript ilma argumentideta, õigete valikutega argumentidega ja vale valikuga argumentidega.

Näide 4: Argumendi väärtuste lugemine lühikeste ja pikkade getopt -valikute abil

See näide näitab, kuidas saab argumentide väärtustega kasutada nii lühikesi kui ka pikki valikuid. See lisab kaks numbrit, kui '' kuni '' või '-lisama' kasutatakse valikuna ja lahutatakse kaks numbrit, kui -s ' või ' - alam ' kasutatakse käitusajal lisavarustusena.

# Impordi moodul Getopt
import ülaosaga

# Impordi sys moodul
import sys

# Salvestage argumendi muutuja, jättes skripti nime välja
argv= sys.argv[1:]

# Tulemusmuutuja initsialiseerimine
tulemus=0

proovige:

# Määratlege lühike ja pikk valik
võimalusi,args= ülaosaga.ülaosaga(sys.argv[1:], 'a: s', ['lisa =','sub ='])

# Lugege iga valikut silmuse jaoks
eestopt,vihanesissevalikud:
# Arvutage summa, kui suvand on -a või -lisage
kuioptsisse ('' kuni '', '--lisama'):
tulemus= int(argv[1])+int(argv[2])

# Arvutage suntraktsioon, kui suvand on -s või --sub
elifoptsisse ('-s', '-alam'):
tulemus= int(argv[1])-int(argv[2])

printida('Tulemus =',tulemus)

välja arvatud ülaosaga.GetoptError:

# Kui vale valik on saadaval, printige veateade
printida('Pakutakse vale valikut')

# Lõpetage skript
sys.väljumine(2)

Väljund:

Käivitage skript ilma argumentide ja valikuvõimalusteta, argumendid valikuga „-a”, argumendid valikuga „-s” ja argumendid vale valikuga.

Käsurea argumendi sõelumine argparse mooduli abil

Argparse moodul sisaldab palju käsurea argumentide lugemise võimalusi. See moodul võib pakkuda argumendi vaikeväärtusi, andmetüüpi, positsiooniargumente, abisõnumit jne.

Näide 5: käsurea argumentide lugemine argparse abil

Järgmine näide näitab selle kasutamist argparse moodul käsurea argumentide lugemiseks. Siin on käsurea argumentide lugemiseks määratletud kaks võimalust. Need on „-N” või „–nimi” ja „-E” või „–meil”. Kui kasutaja esitab vale argumendi, näitab see veateadet kasutusteatega. Kui kasutaja pakub argumentidega õigeid valikuid, kuvab see argumentide väärtused. kui kasutaja käivitab skripti valikuga „–help”, annab see skripti käivitamiseks vajaliku teate.

# Impordi argparse moodul
importargparse

# Impordi sys moodul
import sys

# Deklareeri funktsioon käsurea argumentide määratlemiseks
defreadOptions(args=sys.argv[1:]):
parser =argparse.ArgumentParser(kirjeldus='Analüüskäskude loendid.')
parser.lisa_argument('' n '', '-nimi', abi='Sisestage oma nimi.')
parser.lisa_argument('' Ja '', '-e-post', abi=„Sisestage oma e -posti aadress.”)
valib= parser.parse_args(args)
tagasivalib

# Helistage funktsioonile, et lugeda argumentide väärtusi
võimalusi=readOptions(sys.argv[1:])
printida(võimalusi.nimi)
printida(võimalusi.meilile)

Väljund:

Käivitage skript vale valiku, õige valiku ja abivalikuga.

Järeldus:

Selles õpetuses selgitatakse erinevaid käsurea argumentide lugemise viise, kasutades kolme pythoni moodulit. Loodan, et see õpetus aitab kodeerijat, kes soovib andmeid pythonis käsurea argumentide abil lugeda.

Vaata autori videot: siin