2009-11-18 8 views
47

Wie kann ich das opt ErgebnisPython optparse Werte Instanz

nehmen
opt, args = parser.parse_args() 

und es in einem dict platzieren? Python ruft eine "Werte-Instanz" auf und ich kann keine Möglichkeit finden, eine Werte-Instanz in eine Liste oder ein Dict zu verwandeln. Man kann nicht Elemente aus opt auf diese Weise kopieren,

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

statt, es ist ein plump,

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

was bedeutet, dass jedes Mal, wenn ich eine Option hinzufügen, ich habe auch diesen Code aktualisieren ; Es sollte einen Weg geben, dies für sich selbst sorgen zu lassen.

Antwort

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

(Source is this python-ideas post.)

+6

Nizza. Ich habe 5 Stunden dafür verschwendet. – mgag

+0

Cool, froh, dass es für dich funktioniert. – bcat

+14

Ich habe keine Ahnung, wie ich nach 12+ Jahren von Python nichts über 'vars()' wusste. Du lernst die ganze Zeit etwas Neues. –

Verwandte Themen