Seite 1 von 1
Datei öffnen und mehrmals in for Schleife bringen.
Verfasst: Donnerstag 3. Januar 2019, 18:01
von egon11
Ich stoße gerade auf ein Problem, welches ich jetzt nicht so erwartet habe.
Ich möchte eine Datei lesend öffnen und mit 2 for-schleifen die Sache durchlaufen.
Jetzt ein Beispiel:
Code: Alles auswählen
with open("/myfile") as file:
datei = csv.reader(file)
appen = []
for i in datei:
appen.append(i)
print(appen)
for two in datei:
print(two)
Das geht so nicht, also er gibt mir "two" nicht aus.
Re: Datei öffnen und mehrmals in for Schleife bringen.
Verfasst: Donnerstag 3. Januar 2019, 18:07
von __blackjack__
@egon11: Das geht nicht weil der Dateizeiger ans Ende wandert und da auch bleibt. Da Du die Daten aber in `appen` hast, ist das doch auch gar nicht nötig noch einmal die Daten aus der Datei zu lesen und zu parsen. Das dauert doch nur unnötig lange.
Re: Datei öffnen und mehrmals in for Schleife bringen.
Verfasst: Donnerstag 3. Januar 2019, 18:23
von noisefloor
Hallo,
warum durchläufst du die Datei nicht 1x und rufst dann aus der for-Schleife aus zwei Funktionen auf, die was mit `i` machen?
Gruß, noisefloor
Re: Datei öffnen und mehrmals in for Schleife bringen.
Verfasst: Donnerstag 3. Januar 2019, 18:40
von __blackjack__
Die Namen sind teilweise nicht gut und das einlesen in eine Liste kann man deutlich kürzer schreiben:
Code: Alles auswählen
import csv
with open('data.csv') as csv_file:
rows = list(csv.reader(csv_file))
print(rows)
for row in rows:
print(row)
Re: Datei öffnen und mehrmals in for Schleife bringen.
Verfasst: Donnerstag 3. Januar 2019, 18:47
von egon11
Hat mir weiter geholfen danke.
Re: Datei öffnen und mehrmals in for Schleife bringen.
Verfasst: Donnerstag 3. Januar 2019, 22:37
von xXSkyWalkerXx1
__blackjack__ hat geschrieben: Donnerstag 3. Januar 2019, 18:40
Die Namen sind teilweise nicht gut und das einlesen in eine Liste kann man deutlich kürzer schreiben:
Code: Alles auswählen
import csv
with open('data.csv') as csv_file:
rows = list(csv.reader(csv_file))
print(rows)
for row in rows:
print(row)
Mal ne Frage: ist
Code: Alles auswählen
with open('data.csv') as csv_file:
rows = list(csv.reader(csv_file))
print(rows)
das Selbe wie
Code: Alles auswählen
csv_file = open('data.csv)
rows = list(csv.reader(csv_file))
print(rows)
oder gibt's 'nen Unterschied?
Re: Datei öffnen und mehrmals in for Schleife bringen.
Verfasst: Donnerstag 3. Januar 2019, 22:56
von __deets__
Hast du dir mal die Mühe gemacht nachzuschlagen, was das with Schlüsselwort macht? Das beantwortet dann auch deine Frage....
Re: Datei öffnen und mehrmals in for Schleife bringen.
Verfasst: Donnerstag 3. Januar 2019, 23:07
von xXSkyWalkerXx1
Habe ich gerade und meine Frage sollte nun dadurch geklärt sein. ^^