parser argumentparser arg_parser add_argument python optparse

argumentparser - Lista de Python Optparse



arguments parser python (4)

Estoy usando el módulo python optparse en mi programa, y ​​tengo problemas para encontrar una manera fácil de analizar una opción que contiene una lista de valores.

Por ejemplo:

--groups one,two,three.

Me gustaría poder acceder a estos valores en un formato de lista como options.groups[] . ¿Hay una opción optparse para convertir valores separados por comas en una lista? ¿O tengo que hacer esto manualmente?


La respuesta de S.Lott ya ha sido aceptada, pero aquí hay una muestra de código para los archivos:

def foo_callback(option, opt, value, parser): setattr(parser.values, option.dest, value.split('','')) parser = OptionParser() parser.add_option(''-f'', ''--foo'', type=''string'', action=''callback'', callback=foo_callback)



Con optparse, para obtener un valor de lista puede usar la acción '' append '':

from optparse import OptionParser parser = OptionParser() parser.add_option("--group", action="append", dest="my_groups") (options, args) = parser.parse_args() print options.my_groups

Luego llame a su programa de esta manera:

$ python demo.py --grupo uno --grupo dos --grupo tres

[''uno dos tres'']


De nuevo, solo por la integridad del archivo, expandiendo el ejemplo anterior:

El código (con pequeños cambios) sería entonces:

def get_comma_separated_args(option, opt, value, parser): setattr(parser.values, option.dest, value.split('','')) parser = OptionParser() parser.add_option(''-f'', ''--foo'', type=''string'', action=''callback'', callback=get_comma_separated_args, dest = foo_args_list)