2017-10-23 6 views
0

Ich bin neu in Python und ich mache meine ersten Schritte, um einige Skripte zu erstellen. Ich möchte auf eine Datei zugreifen und die Elemente in einer Liste speichern und auf jedes Element als seine eigene Variable zugreifen. Das Format der Datei ist .txt und ist als solches, aber nicht auf 3 Spalten beschränkt, es könnte 4 oder mehr sein.Python Daten von Datei zu Variablen speichern

textData,1 

textData,2 

textData,3,moreData 

textData,4,moreData4 

textData,5 

Ich weiß, wie auf eine Liste und Zugriff auf einzelne Elemente, beginnend mit [0], aber wenn ich tue, dass ich textdata, 1 für [0] und ich möchte nur textdata auf seine eigenen und 1 erhalten lesen und hängen allein und so weiter, während ich die Datei durchlaufe.

Unten ist mein Anfang dieses:

file = open('fileName','r') 

list = [] 

for items in file: 

    list.append(items) 

print(list[0]) 

Danke, dass Sie sich die Zeit nehmen zu lesen und Richtung zur Verfügung stellen.

+1

als beiseite, verwenden Sie nicht 'list' als Variablennamen, es Schatten der eingebaute in' list' –

Antwort

0

Wenn Sie ein Dateiobjekt durchlaufen, erhalten Sie jede Zeile als str. Sie können dann jedes Wort mithilfe der Methode .split abrufen, die eine Liste mit str s zurückgibt. Da Ihre Artikel kommagetrennt sind, teilen wir uns unter ','. Wir wollen nicht, diese Liste der Gesamtliste append, sondern fügen Sie alle Elemente der Liste auf der Gesamtliste, daher der +=:

file = open('fileName', 'r') 
mylist = [] 
for line in file: 
    words = line.split(',') 
    mylist += words 
print(mylist[0]) 

Vermeiden Sie auch list als Variablennamen verwenden, da dies der Name der eingebauten list Funktion.

+0

vielen Dank für die schnelle Antwort, aber Ich bekomme immer noch textData, 1 und ich will nur TextData für [0] und 1 für [1] – J0876car

+0

Ich habe die Antwort aktualisiert. –

+0

Das hat funktioniert und danke. Jetzt muss ich studieren, was du getan hast und es verstehen. – J0876car

1

Sie müssen die Zeilen aufgeteilt:

my_list = [] 
for lines in file: 
    my_list.append(lines.split(',')) 

print(my_list) 
+1

bitte benutze 'list' nicht als Variable. – GiantsLoveDeathMetal

+0

Sie haben Recht. Ich habe gerade die Autoren Variablennamen genommen. Ich sollte sinnvollere verwenden und nicht einen, der einen Datentyp schattiert. Ich habe meinen Code korrigiert. – mrCarnivore

Verwandte Themen