2012/4/26 Walter Valenti <waltervale...@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@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@pc-beruntu:~/work/python$ python arg.py -v usage: arg.py [-h] [-v] PATH arg.py: error: too few arguments marcob@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@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
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python