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:
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:
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
LoginFonte: You are not allowed to view links.
Register or
Login