[Python] Modulo argparse

Daniele Varrazzo piro a develer.com
Gio 26 Apr 2012 17:44:28 CEST


On Thu, 26 Apr 2012 15:41:25 +0100 (BST), Walter Valenti wrote:
> Ho un problema banale con il modulo "argparse".
> Mi serve implementare semplicemente.
>
> comando valore
> comando -v(flag opzionale. Mi stampa la versione ed esce)
>
>
> Ho provato cosė:
>
> parser = argparse.ArgumentParser()
> parser.add_argument("strings",metavar="PATH", 
> type=unicode,default="")
> parser.add_argument("-v", dest='vers',action="store_true",
> help="versione",required=False)
> values=parser.parse_args()
>
> if values.vers == True:
>     print "Versione"
>     sys.exit(0)
>
> Senza il flag "-v" funziona.
> Con il "-v" mi risponde:
> error: too few arguments
>
> vuole per forza l'altro parametro.
> Come faccio a saltarlo ?

Prova ad usare action='version' invece di store_true: probabilmente č 
fatto apposta per dire "anche se ci sono parametri non facoltativi, 
sbattitene, stampa la versione ed esci". Con store_true, tutta la riga 
di comando deve essere validata.

http://docs.python.org/dev/library/argparse.html#action

-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com


Maggiori informazioni sulla lista Python