[Python] Modulo argparse

Marco Beri marcoberi a gmail.com
Gio 26 Apr 2012 16:47:20 CEST


2012/4/26 Walter Valenti <waltervalenti a yahoo.it>

> 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 ?
>

C'è qualcosa che mi sfugge.

marcob a pc-beruntu:~/work/python$ cat arg.py
import argparse, sys
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)

marcob a pc-beruntu:~/work/python$ python arg.py  -v
usage: arg.py [-h] [-v] PATH
arg.py: error: too few arguments

marcob a pc-beruntu:~/work/python$ python arg.py
usage: arg.py [-h] [-v] PATH
arg.py: error: too few arguments



A me pare che non funzioni anche senza argomenti...
Se stampi l'help vedi che l'argomento PATH, in quanto posizionale, è
obbligatorio:

marcob a pc-beruntu:~/work/python$ python arg.py -h
usage: arg.py [-h] [-v] PATH

positional arguments:
  PATH

optional arguments:
  -h, --help  show this help message and exit
  -v          versione


Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120426/f5fd6d31/attachment.html>


Maggiori informazioni sulla lista Python