Liste aus Datei lesen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Zusammen ,

    ich möchte aus Python eine TXT datei in eine Liste einlesen.

    Code
    123:"test",
    4398:"willi",
    557:"Hans",


    Natürlich sollen dort noch mehr Namen eingetragen werden.

    Normalerweise sollte die Liste nachher so aussehen:

    Code
    userliste = {123:"test", 43983:"willi", 557:"Hans",}

    Das Problem ist der Zeilenumbruch der mir die Liste unbrauchbar macht.

    Code
    ['123:"test",\n', '4398:"willi",\n', '557:"Hans",\n']

    Folgende Codes habe ich jetzt Probiert

    Code
    userliste= open(dateiname).readlines()


    aber darauf kann ich kein userliste.replace(austausch1, "" ); machen
    so das wieder die obere Liste mit \n ensteht

    Code
    with open(dateiname) as fp:
        for line in fp:
            print(line)
           userliste.append(line)
    
    
     fp.close()


    ein replace auf line hat hier gar keine wirkung.

    Jemand eine Idee ?

    Danke
    Der Suchende

    Einmal editiert, zuletzt von Der_Suchende (15. Dezember 2014 um 22:52)

  • Hast du Einfluss darauf, wie die Text-Datei aussieht?
    Dann nutze doch den ConfigParser.

    Beispiel-Config-Datei:

    Code
    [ID]
    123 = "test"
    4398 = "willi"
    557 = "Hans"

    Config laden siehe Zeile 285 (Methode load_config)
    https://github.com/motom001/DoorP…oorpi/doorpi.py

    Meine Umsetzung:
    https://github.com/motom001/DoorP…onfig_object.py

    Meine Beispiel-Config-Datei:
    https://github.com/motom001/DoorP…onfig_object.py

    Hilft dir das oder musst Du unbedingt die Liste so parsen?

  • Der_Suchende

    Grundsätzlich solltest du dir die Frage stellen, ob du den Inhalt ''dateiname'' wirklich als Liste speichern willst oder eher als Dictionary, denn der Inhalt sieht eher wie Wert:Schlüssel aus.

    Liste:

    Code
    with open('data.txt', 'r') as f:
        user_list = [i.strip().replace(",", "") for i in f.readlines()]
        print(user_list)


    Dic:

    Code
    new_list = [i.split(':') for i in user_list]
    new_dict = dict((int(key), value.replace('"', '')) for (key, value) in new_list)
    print(new_dict)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!