Python Getopt vs Argparse confrontato

Python Getopt vs Argparse confrontato

Sono necessari più codici per invocare l'argomento di sistema di array di sistema nel pacchetto "getopt", che è meno efficiente del pacchetto "ArgParse". Tuttavia, sembra utile essere in grado di decifrare, scrivere e utilizzare questo prodotto. Questo codice è facilmente compreso dai novizi e non richiede alcun commento. Il modulo "getopt" è un parser di scelta della riga di comando con un'API che è destinata a essere familiare a coloro che hanno usato la funzione "getopt ()". Gli utenti potrebbero prevedere di sfruttare il modulo "ArgParse" piuttosto che la funzione "getopt ()" se desideriamo scrivere meno codice con un migliore assistenza e messaggi di errore. Lo strumento di scrittura dell'interfaccia di comando per il linguaggio di programmazione Python è "ArgParse", un componente della libreria standard. La creazione di configurazioni di riga di comando intuitiva nel modulo "ArgParse" è semplice. Il programma specifica gli argomenti che cerca, quindi "Argparse" utilizza come estrarre tali argomenti dall'argomento del sistema. Inoltre, il modulo "Argparse" crea automaticamente i messaggi di aiuto di utilizzo.

Sintassi

La sintassi per Python "Getopt" è fornita di seguito:


Questa sintassi ha quasi tre parti: "Args" si riferisce agli argomenti che verrebbero passati nella stringa o nella funzione, mentre la seconda parte, "Opzioni", si riferisce allo script che cerca una stringa di lettere di opzione. Un colon dovrebbe essere posto dopo qualsiasi scelta che richiede un argomento. L'ultima parte nella sintassi, "long_options", determina l'elenco dei nomi per le opzioni lunghe in un formato stringa e un segno uguale dovrebbe seguire gli argomenti opzionali.

La sintassi per Python Argparse è riportata di seguito:


La sintassi di "Argparse" sta prima creando una funzione e in secondo luogo creando o assegnando gli argomenti di sistema alla funzione da creare.

Esempio n. 1: utilizzando il modulo getopt () per creare una funzione per ottenere argomenti tramite lettere abbreviate

Ora discuteremo di come possiamo creare la nostra funzione per gli argomenti del sistema e chiamarli con l'abbreviazione di lettere che sono "G" e "H" che abbiamo usato in questo articolo.


Lo snippet di codice per "getopt ()" è spiegato qui.

Discutiamo l'esempio del codice che abbiamo usato dove abbiamo importato la libreria di "sys" e la seconda libreria che abbiamo usato è "getopt". Quindi abbiamo creato la nostra funzione denominata "your_name", che memorizza due variabili in essa, che sono "sur_name" e "Middle_name". Al momento della definizione della funzione, nessun valore viene assegnato a queste due variabili, "Sur_name" e "Middle_name". Quindi abbiamo creato una variabile di memoria di memoria "argv" che sarebbe memorizzare "sys.argv [2:] ".

Per applicare il fenomeno dell'utilizzo delle lettere di abbreviazione, abbiamo usato il "getopt.getopt () "funzione sulla variabile o memoria di memoria" argv "e le ha assegnato due lettere abbreviate," G "e" H ". Nella condizione "tranne", abbiamo usato la funzione "print ()" per stampare l'istruzione "Errore ha generato" se l'utente preme un tasto che è un tasto tranne "G" o "H".

Per le opzioni in un argomento, abbiamo usato una dichiarazione condizionale a tale scopo in cui la condizione "if" sarà correlata al "sur_name" se premiamo il tasto "G" e la condizione "else" sarà collegata a "H" tasto se lo premi. Visualirebbe il "Middle_name" presente nel nostro argomento. Nell'ultimo, abbiamo usato la funzione "print ()" per stampare il "Sur_name" insieme al "Middle_name" nel display di output. E per porre fine alla funzione, restituiamo la nostra funzione nell'ultimo usando "your_name ()".


La nostra snapshot di output mostra che prima abbiamo usato il "desktop", poiché il nostro Python viene salvato sul desktop. Dopo aver digitato "Desktop", scriviamo il nome del file "You_name.py ”e premi Invio. Quando premiamo il nostro tasto abbreviato, "G", visualizza "sur_name", che è "aqsa", quindi premi "h"; Mostrerà "Aqsa Yasin Python" insieme al nome completo.

Esempio n. 2: utilizzando il modulo getopt () per creare una funzione per ottenere argomenti dalla forma completa di lettere



In questo esempio del modulo "getopt ()", abbiamo importato le stesse librerie, "sys" e "getopt", come nell'esempio precedente. La funzione viene creata come "tuo_name". Questa funzione memorizza due variabili, "First_name" e "Sur_name", in cui a entrambi i valori sono assegnati "nessuno". Per passare l'argomento del sistema, abbiamo usato "sys.argv [1:]. Nella condizione "prova", abbiamo usato lettere complete per il nome. Invece di "G" e "H", li abbiamo considerati "first_name" e "sur_name". La condizione in "tranne" memorizzerà l'istruzione di stampa per il caso. Se l'errore viene generato, verrà eseguito tranne la condizione se un argomento non è presente nella riga di comando.

L'opzione nell'argomento fenomeno è simile all'esempio precedente. Ma, qui nella dichiarazione condizionale di "If" e "Else", useremo "First_name" e "Sur_name" invece di "G" e "H" e variabile che abbiamo usato per memorizzarlo sono "F" e "L". L'ultima funzione "print ()" viene ora utilizzata per stampare "first_name" insieme a "sur_name" e quindi restituire la funzione usando "your_name ()".


Quando apriamo la riga di comando, andremo su "Desktop" mentre il file di codice viene salvato sul desktop e quindi scriviamo il nome del file "Your_name.py "dove".Py ”viene utilizzato come file di estensione per Python. Restituirà "first_name" come "aqsa" e "sur_name" come "yasin". A causa della funzione "Print ()" utilizzata nell'ultima riga, stamperà di nuovo il nome "Aqsa Yasin" in lettere capitalizzate .

Esempio n. 3: utilizzando il modulo ArgParse () per creare un programma di riga di comando che accetta gli argomenti correlati

Passare l'argomento dal modulo "ArgParse" della riga di comando è molto meglio per gli utenti del modulo "getopt". Per spiegare il modulo "Argparse", abbiamo usato i seguenti passaggi, che sono indicati di seguito:


Abbiamo creato per la prima volta un file nel nostro sistema con il nome "Argparse.Py ”come file è correlato a Python, quindi abbiamo usato il".Py ”estensione. Questo file, "Argparse.Py ”, memorizza il codice Python. Apriamo il terminale della riga di comando e prima inseriremo questo comando per raggiungere quel file "Nano Argparse.Py ".


Questo è lo snippet di codice nel nostro file "Argparse.Py ". Ora, se discutiamo di questo codice, possiamo vedere all'inizio che abbiamo importato prima la libreria di "Argparse". Qui, per aver passato due argomenti nel codice, abbiamo usato un totale di due argomenti come "Command_1" e "Command_2". I valori degli argomenti assegnati "Command_1" sono "Inghilterra," Australia "e" Galles ". "Command_2" ha assegnato i valori dell'argomento come "Namibia" e "Cina". Quindi abbiamo creato un "parser" per passare l'argomento con la descrizione di "elenco dei paesi".

L'argomento trasmesso in è "comando", in cui il tipo che abbiamo usato è "stringa". E poi, abbiamo creato "Args", che eseguirà l'argomento da "Parser.parse_args () ". Successivamente, abbiamo creato "paesi", che terranno gli argomenti come "comando", e quindi stampiamo entrambi gli argomenti usando la funzione "print ()".


Per visualizzare il primo argomento memorizzato in "Command_1", digitare le righe precedenti nel terminale della riga di comando.


Dopo aver superato il comando, mostrerà gli argomenti in "Command_1", che sono "Inghilterra", "Australia" e "Galles".


Per raggiungere gli argomenti in "Command_2", digitare "Argparse.Py Command_2 ”e premere Invio in CMD.


Dopo aver premuto Invio, visualizzerà gli argomenti in "Command_2", che sono "Namibia" e "Cina".


Se vogliamo raggiungere la descrizione del nostro file "Argparse.py ", digitare questo" Argparse.py -h "nella riga di comando.


Quindi visualizzerà l'intera descrizione del nostro file Python in cui indica "elenco di paesi" come descrizione e argomenti di posizione qui sono "comando".

Conclusione

In questo articolo, abbiamo trattato il confronto tra due moduli di Python, che sono "getopt" e "argparse". Come abbiamo visto attraverso la discussione attraverso i nostri esempi, abbiamo stabilito che Python "ArgParse" è un modulo più efficace e potente di "Getopt". I primi due esempi coprono il modulo Python "Getopt" e gli altri due esempi coprono "ArgParse" per gli argomenti del sistema.