Wenn ich Ihre Frage und Code richtig verstehen, können Sie die siebte Zeile in der CSV-Datei lesen möchten. Dies wird nicht mit Ihrer Zeile [7] Anweisung getan. Wenn Sie das tun:
for row in readCSV:
Sie gehen durch alle Zeilen in Ihrer CSV-Datei, einer nach dem anderen zu lesen und es als row
speichern. Mit einem Trennzeichen (in diesem Fall ein Komma) wird alles zwischen Kommas zu einer Liste hinzugefügt. Zum Beispiel würde die Zeile "0,12,23,37.154,444"
in Ihrer CSV-Datei in der folgenden Liste enden: [0,12,23,37.154,444]
mit 5 Elementen.
Wenn Sie auf row[7]
zugreifen, nehmen Sie die acht Spalte Ihres aktuellen row
in die Schleife (denken Sie daran, dass Python beginnt, bei 0 zu zählen).
Auch Ihre distance
Variable, die Sie am Anfang definieren, wird von der distance
Variable in Ihrer for row in readCSV:
Schleife überschrieben.
Wenn Sie also die siebte Zeile in Ihrer Datei haben möchten, empfehle ich, mit einem Zähler zu arbeiten, der zählt, wie viele Zeilen Sie bereits passiert haben. Wenn es die siebte Zeile erreicht hat, fügt es nur bis alle Zahlen dieser Zeile und speichert sie:
import csv
with open('C:\\test.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
# Create counter variable to count rows
rowCounter = 0
# Create distance variable to sum distances later
distance = 0
# Go through each row in the csv file
for row in readCSV:
rowCounter += 1 # Add one to the rowCounter
if rowCounter == 7: # If rowCounter is seventh row
for e in row: # For every element in this row
distance += float(e) # Add the float of that element to distance
Wenn dies nicht hilfreich war, schlage ich in Ihrer Frage präziser zu sein.
Beispiel für einige Zeilen Form der Datei wäre nützlich. – Marcin
Was @Marcin sagte ebenso wie der genaue Fehler mit der Linie und so wäre hilfreich für jemanden, der Ihnen antworten will. –
Verwenden Sie 'numpy.genfromtxt' anstelle von python' csv' für eine natürlichere und wahrscheinlich schnellere Leistung – AbdealiJK