2009-11-18 11 views
47

Come posso prendere il risultato opt diPython optparse valori di istanza

opt, args = parser.parse_args() 

e posizionarlo in un dict? Le chiamate Python optano per "Istanza di valori" e non riesco a trovare alcun modo per trasformare un'istanza di valori in un elenco o dettare. Non si può copiare gli elementi da opt in questo modo,

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

invece, è un goffo,

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

il che implica che ogni volta che aggiungere un'opzione, devo aggiornare questo codice come pure ; dovrebbe esserci un modo per lasciare che questo si prenda cura di se stesso.

risposta

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

(Source is this python-ideas post.)

+6

Nizza. Ho perso 5 ore su quello. – mgag

+0

Fantastico, felice che funzioni per te. – bcat

+14

Non ho idea di come, dopo più di 12 anni di python, non sapessi su 'vars()'. Impari qualcosa di nuovo tutto il tempo. –

Problemi correlati