Secondo la documentazione su Python getopt
(credo) i campi delle opzioni dovrebbero comportarsi come la funzione getopt()
. Tuttavia non riesco a consentire parametri opzionali per il mio codice:Esiste comunque la possibilità di convincere Python a getopt a gestire i parametri opzionali alle opzioni?
#!/usr/bin/python
import sys,getopt
if __name__ == "__main__":
try:
opts, args = getopt.gnu_getopt(sys.argv[1:], "v::", ["verbose="])
except getopt.GetoptError, err:
print str(err)
sys.exit(1)
for o,a in opts:
if o in ("-v", "--verbose"):
if a:
verbose=int(a)
else:
verbose=1
print "verbosity is %d" % (verbose)
Risultati in:
$ ./testopt.py -v
option -v requires argument
$ ./testopt.py -v 1
verbosity is 1
che è docs optparse;) – SilentGhost
Sì ho appena notato che, classico caso di "scheda sbagliata "sindrome. Tuttavia, penso ancora che questo ragionamento sia relativo anche per getopt. –
Inoltre, le opzioni lunghe possono avere argomenti opzionali in modo non ambiguo; "--foo" vs. "--foo = arg". Python non sembra supportare questo, che è molto povero; un sintomo di metà re-implementazione di qualcosa da zero ... –