Pentru a adăuga argumente scripturilor Python, va trebui să utilizați un modul încorporat numit „Argparse”. După cum sugerează și numele, analizează argumentele din linia de comandă utilizate în timpul lansării unui script sau aplicație Python. Aceste argumente analizate sunt verificate și de modulul „argparse” pentru a se asigura că sunt de „tip” adecvat. Erorile sunt ridicate dacă există valori nevalide în argumente.
Utilizarea modulului argparse poate fi înțeleasă cel mai bine prin exemple. Mai jos sunt câteva exemple de coduri care vă vor ajuta să începeți cu modulul argparse.
Exemplul 1: Generați argumentul de ajutor și mesajul
Luați în considerare exemplul de cod de mai jos:
import argparseparser = argparse.ArgumentParser (description = 'Un program de testare.')
args = parser.parse_args ()
Prima declarație importă modulul „argparse”. Apoi, se creează o nouă instanță a obiectului „ArgumentParser” și o scurtă descriere a programului este furnizată ca argument. Obiectul ArgumentParser este necesar pentru a converti valorile argumentelor din linia de comandă în tipuri de date înțelese de Python. Acest lucru se face prin metoda „parse_args” a obiectului ArgumentParser, așa cum se arată în ultima declarație.
Presupunând că ați salvat exemplul de cod menționat mai sus într-un fișier numit „test.py ”, rularea comenzilor de mai jos vă va ajuta să ajutați mesajele legate de program.
$ ./Test.py -h$ ./Test.py --help
Ar trebui să obțineți o ieșire similară cu aceasta:
utilizare: test.py [-h]Argumente opționale ale unui program de test:
-h, --help afișează acest mesaj de ajutor și ieși
Rețineți că nu a fost adăugată la eșantionul de cod menționat mai sus nicio logică pentru a trata argumentele analizate și a le converti în obiecte. Prin urmare, mesajele de ajutor pentru argumente individuale nu sunt afișate în rezultat. După ce adăugați logică pentru gestionarea valorilor argumentelor analizate în programul dvs., mesajele de ajutor vor începe să afișeze descrieri pentru argumente individuale.
Exemplul 2: gestionați un argument șir
Pentru a adăuga argumente acceptabile de scriptul Python, trebuie să utilizați metoda „add_argument”. Aruncați o privire la următorul cod:
import argparseparser = argparse.ArgumentParser (description = 'Un program de testare.')
analizor.add_argument ("print_string", help = "Tipărește argumentul furnizat.")
args = parser.parse_args ()
print (arg.print_string)
A fost adăugată o nouă declarație, care arată utilizarea metodei „add_argument”. Orice argument adăugat la lansarea scriptului va fi tratat ca un obiect „print_string” de „ArgumentParser”.
Rețineți că, în mod implicit, metoda „add_argument” tratează valorile extrase din argumente ca șiruri, deci nu trebuie să specificați în mod explicit „tipul” în acest caz. O valoare implicită „Nici unul” este, de asemenea, atribuită argumentelor adăugate, dacă nu este suprascrisă.
Încă o dată, aruncați o privire asupra mesajului de ajutor:
utilizare: test.py [-h] [print_string]Un argument de poziție al programului de testare:
print_string tipărește argumentul furnizat
argumente opționale:
-h, --help afișează acest mesaj de ajutor și ieși
Una dintre liniile din ieșire spune „argumente poziționale”. Deoarece nu este definit niciun cuvânt cheie pentru argument, în prezent argumentul este tratat ca un „argument pozițional” în care ordinea și poziția argumentului furnizat au un efect direct asupra programului. Argumentele poziționale sunt, de asemenea, obligatorii, cu excepția cazului în care le schimbați manual comportamentul.
Pentru a defini și analiza argumentele opționale, puteți utiliza „-” (liniuță dublă) și puteți modifica valorile implicite folosind argumentul „implicit”.
import argparseparser = argparse.ArgumentParser (description = 'Un program de testare.')
analizor.add_argument ("- print_string", help = "Tipărește argumentul furnizat.", implicit =” Un șir aleatoriu.”)
args = parser.parse_args ()
print (arg.print_string)
Acum, când rulați „testul.py ”fără niciun argument, ar trebui să obțineți„ Un șir aleatoriu.”Ca ieșire. De asemenea, puteți utiliza opțional cuvântul cheie „-print_string” pentru a imprima orice șir la alegere.
$ ./Test.py --print_string LinuxHint.comLinuxHint.com
Rețineți că puteți face obligatoriu un argument opțional utilizând un argument suplimentar „obligatoriu = Adevărat”.
În cele din urmă, puteți defini și versiunile de scurtare ale argumentului folosind „-” (o singură liniuță) pentru a reduce verbozitatea.
import argparseparser = argparse.ArgumentParser (description = 'Un program de testare.')
analizor.add_argument (“- p”, "--print_string", help = "Tipărește argumentul furnizat.", implicit =” Un șir aleatoriu.”)
args = parser.parse_args ()
print (arg.print_string)
Rularea următoarei comenzi ar trebui să vă ofere același rezultat ca mai sus:
$ ./Test.py -p LinuxHint.comExemplul 3: gestionați un argument întreg
Pentru a gestiona argumentele care necesită valori întregi, trebuie să setați cuvântul cheie „type” la „int” pentru a permite validarea și aruncarea erorilor în cazul în care condiția nu este îndeplinită.
import argparseparser = argparse.ArgumentParser (description = 'Un program de testare.')
analizor.add_argument ("- p", "--print_string", help = "Tipărește argumentul furnizat.", tastați = int)
args = parser.parse_args ()
print (arg.print_string)
Încercați să rulați următoarea comandă:
$ ./Test.py -p LinuxHint.comAr trebui să primiți o astfel de eroare:
utilizare: test.py [-h] [-p PRINT_STRING]Test.py: eroare: argument -p / - print_string: valoare int invalidă: 'LinuxHint.com '
Furnizarea unei valori întregi vă va oferi rezultatul corect:
$ ./Test.py -p 1000 1000Exemplul 4: Manevrați comutările adevărate și false
Puteți transmite argumente fără nicio valoare pentru a le trata drept steaguri True și False folosind argumentul „acțiune”.
import argparseparser = argparse.ArgumentParser (description = 'Un program de testare.')
analizor.add_argument ("- p", "--print_string", help = "Tipărește argumentul furnizat.", action =" store_true ")
args = parser.parse_args ()
print (arg.print_string)
Rulați comanda de mai jos pentru a obține un „True” simplu ca ieșire:
$ ./Test.py -pDacă rulați scriptul fără argumentul „-p”, va fi atribuită o valoare „False”. Valoarea „store_true” a cuvântului cheie „action” atribuie o valoare „True” variabilei „print_string” ori de câte ori argumentul „-p” este specificat în mod explicit, altfel False este atribuit variabilei.
Exemplul 5: Tratați valorile argumentelor ca listă
Dacă doriți să obțineți mai multe valori simultan și să le stocați în listă, trebuie să furnizați cuvântul cheie „nargs” în următorul format:
import argparseparser = argparse.ArgumentParser (description = 'Un program de testare.')
analizor.add_argument ("- p", "--print_string", help = "Tipărește argumentul furnizat.", nargs = '*')
args = parser.parse_args ()
print (arg.print_string)
Rulați următoarea comandă pentru a testa codul de mai sus:
$ ./Test.py -p „a” „b”Ar trebui să obțineți o astfel de ieșire:
['a', 'b']Concluzie
Modulul „argparse” este destul de complet, cu o mulțime de opțiuni pentru modificarea comportamentului aplicațiilor din linia de comandă și analizarea valorilor furnizate de utilizator. Aceste exemple se referă doar la utilizarea de bază a modulului „argparse”. Pentru aplicații avansate și complexe, este posibil să aveți nevoie de implementări diferite. Accesați documentația oficială pentru o explicație completă a modulului.