Argparse: esperaba un argumento
Frecuentes
Visto 20,873 equipos
9
Tengo la configuración de argumentos argparse de la siguiente manera:
parser = argparse.ArgumentParser(description='foobar')
parser.add_argument('url', metavar='URL')
parser.add_argument('-k', dest='kindle_type', default='kindle3')
parser.add_argument('-n', dest='gallery_name', default='Gallery')
parser.add_argument('-d', dest='dropbox_dir')
args = parser.parse_args()
print parser.parse_args(['imgur_url', '-k'])
Sin embargo, cuando corro script.py -k kindledx http://url.com
, Obtuve el siguiente error: gallery2kindle.py: error: argument -k: expected one argument
¿No se llamó un argumento cuando usé 'kindledx' después de la bandera '-k'?
2 Respuestas
8
¿No se llamó un argumento cuando usé 'kindledx' después de la bandera '-k'?
Lo fue, y si le agregas un print args
después de args = parser.parse_args()
, puedes ver los trabajos de análisis:
~/coding$ python ap.py -k kindledx http://url.com
Namespace(dropbox_dir=None, gallery_name='Gallery', kindle_type='kindledx', url='http://url.com')
pero en esta linea
print parser.parse_args(['imgur_url', '-k'])
Usted no pasar un argumento a k. Comparar
print parser.parse_args(['imgur_url', '-k', 'kindledx'])
que produce
Namespace(dropbox_dir=None, gallery_name='Gallery', kindle_type='kindledx', url='imgur_url')
Respondido el 12 de junio de 12 a las 16:06
1
Dado que este es el primer resultado de buscar en Google este error, quiero compartir que puede suceder si sigue los consejos para ser compatible con Windows. /
en Linux:
arg_parser = argparse.ArgumentParser(
prefix_chars='-+/', description='desc')
Esto causa -option /path/path
tiros expected one argument
aunque parezca válido. Necesitas citas para que sea -option '/path/path'
o quitar el /
en el capítulo respecto a la prefix_chars
arriba para arreglarlo.
Respondido 21 ago 19, 09:08
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas python argparse or haz tu propia pregunta.