"format/muster" erkennung! ?? (anfaengerfrage)

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.
BlackJack

Beitragvon BlackJack » Donnerstag 25. Oktober 2007, 13:15

So ganz ist mir das immer noch nicht klar und ich habe den Eindruck Du verwechselst output mit input!?

Wenn zu einem Modulnamen mehrere von den anderen Attributen gehören können, dann würde sich ein Dictionary anbieten das den Modulnamen auf eine Liste von Attribut-Dictionaries abbildet.
mulder
User
Beiträge: 49
Registriert: Montag 15. Oktober 2007, 10:36
Wohnort: nürnberg

Beitragvon mulder » Freitag 26. Oktober 2007, 07:19

hmm .... mal weit ausgeholt

der output ist eine websphere application server ausgabe ueber eine application!

darin sind bloecke die die verschiedenen optionen der deployten application beschreiben. daher kommt auch ein "modulname" doppelt dreifach oder x-fach vor .. weil es eigentlich nur eine menschlich leserliche ausgabe ist!... wenn ich also aus dem output .. welcher eine liste mit tupel ein dictonary mache ... koennte ich nicht auf den eigentlichen zweiten "wert" (zeite zeile) des dritten mal "modulname" vorkommen zugriefen! ..

oder geht das? ... :?:

ich dachte ( und habe es auch bisher nur so benutzt) ein dict inhalt kann man nur ueber den schluesselnamen aufrufen?!
" schlimmer als stress ist, keinen zu haben"
BlackJack

Beitragvon BlackJack » Freitag 26. Oktober 2007, 08:54

Bei einem Dictionary kannst Du über den Modulnamen auf einen Wert zugreifen. Der "eine" Wert kann ja aber auch eine Liste sein.

Code: Alles auswählen

def parse_modules(lines):
    result = {}
    module_name = None
    module = None
    for line in lines:
        key, value = line.split(':', 1)
        value = value.strip()
        if key == 'Module':
            if module_name is not None:
                result.setdefault(module_name, []).append(module)
            module_name = value
            module = {}
        else:
            module[key] = value
    if module_name is not None:
        result.setdefault(module_name, []).append(module)
    return result


def main():
    in_file = open('test.txt')
    modules = parse_modules(in_file.readlines())
    in_file.close()
   
    print modules
    for module_name, entries in modules.items():
        print module_name
        for entry in entries:
            print '    ' + '-' * 40
            for key, value in entry.items():
                print '    %s: %s' % (key, value)

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]