2009-11-18 18 views
47

¿Cómo se puede tomar el resultado de optPython optparse valores de instancia

opt, args = parser.parse_args() 

y colocarlo en un diccionario? Las llamadas de Python optan por una "Instancia de valores" y no puedo encontrar ninguna forma de convertir una Instancia de valores en una lista o dict. No se puede copiar los elementos de opción en esta forma,

for i in opt: 
myDict[i] = opt[i] 

lugar, es un torpe,

myDict[parm1] = opt.parm1 
myDict[parm2] = opt.parm2 

lo que implica que cada vez que agrego una opción, tengo que actualizar el código, así ; debería haber una manera de dejar que esto se cuide a sí mismo.

Respuesta

83
options, args = parser.parse_args() 
option_dict = vars(options) 

(Source is this python-ideas post.)

+6

Niza. Perdí 5 horas en eso. – mgag

+0

Genial, me alegra que te sirva. – bcat

+14

No tengo ni idea de cómo, después de más de 12 años de Python, no sabía sobre 'vars()'. Aprendes algo nuevo todo el tiempo. –

Cuestiones relacionadas