De acuerdo con la documentación en Python getopt
(creo) los campos de opciones deben comportarse como la función getopt()
. Sin embargo, me parece que no puede permitir que los parámetros opcionales para mi código:¿Hay alguna forma de persuadir a getopt de Python para manejar los parámetros opcionales de las opciones?
#!/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)
Resultados: en
$ ./testopt.py -v
option -v requires argument
$ ./testopt.py -v 1
verbosity is 1
que es docs optparse;) – SilentGhost
Sí, me di cuenta de que, caso clásico de "pestaña equivocada "síndrome". Sin embargo, sigo pensando que este razonamiento también es relativo para getopt. –
Además, las opciones largas pueden tener argumentos opcionales sin ambigüedades; "--foo" vs. "--foo = arg". Python's no parece apoyar esto, que es muy pobre; un síntoma de reimplementar a medio camino algo desde cero ... –