Author Topic: [Guida] Argparse - Passaggio dei parametri (argv) in Python  (Read 1781 times)

Offline NebulasIT

[Guida] Argparse - Passaggio dei parametri (argv) in Python
« on: February 01, 2017, 10:39:48 PM »
Per lo sviluppo dei miei tools dedicati alla sicurezza informatica, ho pensato che sarebbe stato troppo "scolastico" fare programmi senza argv, quindi ho studiato varie metodologie per applicare argv nei miei programmi, solo che molte librerie erano troppo obsolete, oppure erano troppo poco leggibili... Per fortuna ho trovato una libreria ottima e l'ho studiata, si chiama: Argparse.

Non è stato difficile imparare, ma come al solito non esiste doc. italiana (Il che può essere anche un bene), però tutto sommato ci sono io, che ve la spiego:

Argparse è una libreria del python che permette la creazione di parser e gruppi, per la gestione degli argv in un programma python. Esempio, se volessimo fare un programma di sicurezza informatica che lanciando il comando:
Code: You are not allowed to view links. Register or Login
Programma.py -Sn effetua uno sniffing, bisogna prendere in considerazione il parametro "-Sn", come si fa questo?! Lo si fa appunto con Argparse, vi posto il mio codice:

Code: You are not allowed to view links. Register or Login
import argparse

def molt(x1, x2):
    res = x1 * x2
    return res


def Main():
    parser = argparse.ArgumentParser()  # Creiamo il nostro parser
    gruppo = parser.add_mutually_exclusive_group() # Creiamo il gruppo necessario per le visualizzazioni
    # Aggiungiamo argomenti per le visualizzazioni
    gruppo.add_argument("-v", "--visualizzazione", action="store_true")
    gruppo.add_argument("-v2", "--visualizzazione2", action="store_true")
    # Aggiungiamo gli argomenti necessari per l'esecuzione
    parser.add_argument("num", help="Un x da moltiplicare", type=int)
    parser.add_argument("num2", help="Un x2 da moltiplicare", type=int)
    # Parser che ci permette salvare in un file
    parser.add_argument("-f", "--file", help="Salvare il risultato in un file",
                        action="store_true")
    args = parser.parse_args() # Args ci aiuta a prendere in esame una argv
    result = molt(args.num, args.num2) # Funzione, passiamo i 2 parametri

    # Serie di controlli per le varie visualizzazioni
    if args.visualizzazione:
        print ("La " + str(args.num) + "moltiplicazione è " + str(result))
    elif args.visualizzazione2:
        print("Il risultato è: " + str(result))
    else:
        print("Errore")
    if args.file:
        f = open("outuput1", "a") # Creo il file
        f.write(str(result) + '\n') # Scrivo sul file e vado a capo...

if __name__ == '__main__':
    Main()

Questo è un programma semplice che moltiplica 2 numeri, però prende in considerazione i parametri: "-v" e "-v2", che sono essenzialmente 2 print differenti di un'unico risultato.

Altre info: You are not allowed to view links. Register or Login

Fonte: You are not allowed to view links. Register or Login
« Last Edit: February 01, 2017, 10:58:36 PM by NebulasIT »
Website:  You are not allowed to view links. Register or Login
Email: [email protected]
 

Offline devilicecream

Re:[Guida] Argparse - Passaggio dei parametri (argv) in Python
« Reply #1 on: February 03, 2017, 06:22:58 AM »
Yep! argparse è la soluzione che preferisco quando devo fare roba che prende argomenti da linea di comando. Un po' macchinoso, ma funge bene  :)
 

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40