Seite 1 von 1

Woher kriege ich eine Liste aus optparse.OptionPars options?

Verfasst: Sonntag 27. März 2011, 00:05
von finki
Hallo, guten Tag an alle (eher gute Nacht...). Ich bräuchte mal wieder eure Hilfe.

Ich nutze das optparse.OptionParser um die Options zu erhalten. Soweit so gut. Ich brauche allerdings auch eine Liste aller erzeugten Variablen. Zum Beispiel habe ich nach

Code: Alles auswählen

(options, unparsed_args) = options.parse_args(args)
ein "options.playback". Ich bräuchte aber eine iterable Liste aller keys. Wo kriege ich das her? Ich würde gerne so etwas machen wie:

Code: Alles auswählen

for key, value in options:
    config_new.set(section, key, value)
Danke schon mal für eure Antworten.

Re: Woher kriege ich eine Liste aus optparse.OptionPars opti

Verfasst: Sonntag 27. März 2011, 08:35
von lunar
@finki: "vars(options)".

Re: Woher kriege ich eine Liste aus optparse.OptionPars opti

Verfasst: Sonntag 27. März 2011, 11:09
von finki
Danke schön für den Hinweis. Es funktioniert nun einwandrei. Habe es jetzt so gelöst:

Code: Alles auswählen

    for key in vars(options):
        value = getattr(options, key)
        if value is not None:
            config_new.set(section, key, value)

Re: Woher kriege ich eine Liste aus optparse.OptionPars opti

Verfasst: Sonntag 27. März 2011, 11:14
von lunar
@finki: Nütze ".iteritems()":

Code: Alles auswählen

for key, value in vars(options).iteritems():
    if value is not None:
        config_new.set(section, key, value)

Re: Woher kriege ich eine Liste aus optparse.OptionPars opti

Verfasst: Sonntag 27. März 2011, 11:47
von finki
Das ist exakt was ich gesucht und gebraucht habe. Danke.

... aber nur so als Hinweis, in deinem Beispiel hast du .itervalues(), wohingegen du im Beschreibungstext .iteritems() schreibst. Ich glaube du meinst .iteritems(), da damit alles reibungslos funktioniert. Nur so für die Nachwelt, falls es jemand der gerade lernt ausprobiert.

Re: Woher kriege ich eine Liste aus optparse.OptionPars opti

Verfasst: Sonntag 27. März 2011, 12:52
von lunar
@finki: Du verwirrst mich. In meinem Beispiel steht doch ".iteritems()"?! ".itervalues()" habe ich doch gar nicht erwähnt?

Re: Woher kriege ich eine Liste aus optparse.OptionPars opti

Verfasst: Sonntag 27. März 2011, 14:07
von finki
In deinem Python Beispiel stand .itervalues() und im Text .iteritems()!!

Was soll das, jetzt ist es wieder weg. Hat es jemand "Korrektur" editiert, bevor ich darauf geantwortet habe? Vielleicht während ich noch schrieb. Aber das ist ja jetzt sowieso egal.

Re: Woher kriege ich eine Liste aus optparse.OptionPars opti

Verfasst: Sonntag 27. März 2011, 15:13
von BlackJack
@finki: *Hust* :oops: Das war ich, sorry für die Verwirrung. Und es war in der Tat bevor Deine Antwort da war. Sonst hätte ich es als Änderung gekennzeichnet.

Re: Woher kriege ich eine Liste aus optparse.OptionPars opti

Verfasst: Sonntag 27. März 2011, 15:57
von lunar
@finki: Verzeihung, ich dachte wirklich, ich hätte ".iteritems()" geschrieben. Es passiert mir leider öfter (auch bei der eigenen Arbeit), dass ich .itervalues() schreibe, obwohl ich .iteritems() meine. Ich hoffe, die Verwirrung war nicht zu groß, bitte entschuldige meine Nachlässigkeit.

@BlackJack: Danke für die Korrektur meines Beitrags. Du moderierst ja schneller als ich denken kann ;)

Re: Woher kriege ich eine Liste aus optparse.OptionPars opti

Verfasst: Sonntag 27. März 2011, 16:41
von finki
@lunar
Ist ja alles halb so wild.^^ Wie bereits erwähnt, kam ich nach kurzer Zeit dahinter. Es konnte ja nur einer von beiden richtig sein. :P Danke für die Hilfe.

@BlackJack
Ich finde es auch löblich, das du hier alles schön sauber hälst und "offentsichtliche" Fehler spurenfrei korrigierst.

Derartige kleine Fehler können passieren. Wir machen alle Fehler.