Frage zu Schleifen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
SNC
User
Beiträge: 6
Registriert: Donnerstag 3. Mai 2007, 08:13

Donnerstag 3. Mai 2007, 08:29

Hallo,

ich kämpfe im Moment mit dem "CIM" - Modell und VMWare.
Da VMWare im "CIM-sdk" als Alternative zu Java und C++
Python anbietet hab ich mich als "Langzeitinteressierter" :D mal
dran gewagt. Es läuft bisher (fast) problemlos und ich bekomme auch nahezu alle Daten raus die ich benötige. Leider hänge ich im Moment bei
einer "for - Schleife" die alle Instanzen einer Klasse mit Wert ausgibt.

Code: Alles auswählen

names = client.EnumerateInstanceNames('CIM_OperatingSystem',NS)


if names is None:
   print 'Nothing detected on %s' % sys.argv[1]
   sys.exit(0)

#Hier beginnt Schleife
for n in names:

    os = client.GetInstance(n)

    for key, value in os.items():
        print '%s = %s' % (key, value)
In der Ausgabe der Schleife befinden sich mehr Daten als ich benötige.
Deswegen möchte ich nur die Namen/Werte ausgeben die wirklich interessant sind. Hab die Schleife jetzt schon ein paar mal umgebaut
leider ohne sinnvolles Ergebnis. Irgendwie will im Vergleich zu Java bei mir nicht der Groschen fallen. Falls jemand einen Tip hat wäre ich sehr
dankbar.

Edit (Leonidas): Highlighting eingeschaltet.
BlackJack

Donnerstag 3. Mai 2007, 09:06

In der innersten Schleife über die Namen iterieren, die Du haben möchtest ist keine Lösung?

Code: Alles auswählen

for key in ('wasweisich', 'nocheinname', 'bla'):
    print '%s = %s' % (key, os[key])
SNC
User
Beiträge: 6
Registriert: Donnerstag 3. Mai 2007, 08:13

Donnerstag 3. Mai 2007, 09:26

Hallo,

ich hab wie von dir vorgeschlagen:

Code: Alles auswählen

for n in names:

    os = client.GetInstance(n)
      
    for key in ('CSName', 'CreationClassName'):
       print '%s = %s' % (key, os[key])
probiert und es läuft. :)

Vielen Dank

Edit (Leonidas): Highlighting eingeschaltet.
Antworten