Seite 1 von 1

.txt als Liste benutzen

Verfasst: Freitag 29. Dezember 2017, 10:37
von frcom
Hallo allerseits,
Ich habe folgendes Problem: Ich habe mit einem pythonskript eine .txt-Datei erstellt die nur Zahlen enthält und zwar in folgendem Format:
zahl1, zahl2, zahl3, zahl4, zahl5, ...
Nun will ich diese Zahlen wieder benutzen - und zwar als list
Mein Ansatz bisher ist folgender:

Code: Alles auswählen

datei = open("Messwerte_liste.txt", "r")
for line in datei:
    liste = [line.rstrip()]
datei.close()
MEIN Problem dabei: Es wird zwar eine Liste erstellt, die aber folgendermaßen aussieht:
liste = ['zahl1, zahl2, zahl3, zahl4, zahl5, ...']
Die Anführungszeichen am Anfang und am Ende nerven, weil ja jetzt alle Zahlen zusammen ein Objekt in der Liste darstellen, und ich nicht einzelne ansprechen kann...
Les ich die Datei schon völlig falsch ein, oder kann/muss ich das Ganze noch im Nachhinein formatieren?

Ich hoffe Jemand von euch kann mir helfen

Grüße

Re: .txt als Liste benutzen

Verfasst: Freitag 29. Dezember 2017, 11:28
von Sirius3
@frcom: wie Du bei der Ausgabe auch alle Zahlen in Strings und diese mit Komma in eine Zeile gepackt hast, mußt Du beim Lesen umgekehrt vorgehen. Normalerweise speichert man solche Zahlen aber auch als ein Spalte statt einer Zeile.

Re: .txt als Liste benutzen

Verfasst: Freitag 29. Dezember 2017, 15:44
von frcom
zu allererst: Vielen Dank! leider verstehe ich nicht genau, was du mit umgekehrt vorgehen meinst...
Die Datei habe ich wie folgt erstellt:

Code: Alles auswählen

with open('Messwerte_liste.txt', 'w') as out_file:
    out_file.write('{0}\n'.format(', '.join(str(n) for n in liste)))
das mit ...join(str(n)... kann ich leider nicht als list angeben, da dann der Fehler kommt, dass "'float' object not iterable" sei...
Ich weiß gerade wirklich überhaupt nicht weiter :/

Re: .txt als Liste benutzen

Verfasst: Freitag 29. Dezember 2017, 16:21
von nezzcarth
Na ja, erst hast du mehrere Elemente in Strings konvertiert und sie mit 'join' zu einem Gesamt-String zusammengeführt. Jetzt musst du diesen String wieder zerlegen. Dafür gibt es die 'split'-Methode (https://docs.python.org/3/library/stdty ... #str.split). Alternativ kann du dir im Python-Interpreter mit 'dir(…)' die einzelnen Methoden und Attribute eines Objekts anzeigen lassen und mit 'help(…)' eine Kurz-Doku dazu sehen. Das ist neben der Lektüre des Tutorials und der Referenz m.M.n. einer der effektiveren Wege, um Python zu lernen.

Und die Anführungszeichen, die dich oben nerven, gehören nicht zur Zeichenkette, sondern sind einfach nur Anzeige-bedingt.

Re: .txt als Liste benutzen

Verfasst: Freitag 29. Dezember 2017, 18:29
von kbr
@frcom: Du gehst etwas umständlich vor. Wenn Du Deine Daten beispielsweise zeilenweise speicherst:

Code: Alles auswählen

with open('Messwerte_liste.txt', 'w') as out_file:
    for item in liste:
        out_file.write('{}\n'.format(item))
dann kannst Du sie mit wenig Aufwand wieder einlesen:

Code: Alles auswählen

with open('Messwerte_liste.txt') as in_file:
    data = [float(line) for line in in_file]

Re: .txt als Liste benutzen

Verfasst: Freitag 29. Dezember 2017, 19:17
von frcom
Super! vielen Dank an euch beide, ich werde beides mal versuchen