2013-06-23 9 views
39

Es gibt viele Beispiele für das Lesen von CSV-Daten mit Python, wie diese:Wie liest man eine einzelne Zeile von CSV-Daten in Python?

import csv 
with open('some.csv', newline='') as f: 
    reader = csv.reader(f) 
    for row in reader: 
    print(row) 

Ich möchte nur eine Zeile von Daten lesen und sie in verschiedene Variablen eingeben. Wie mache ich das? Ich habe überall nach einem funktionierenden Beispiel gesucht.

Mein Code ruft nur den Wert für i, und keiner der anderen Werte

reader = csv.reader(csvfile, delimiter=',', quotechar='"') 
for row in reader: 
    i = int(row[0]) 
    a1 = int(row[1]) 
    b1 = int(row[2]) 
    c1 = int(row[2]) 
    x1 = int(row[2]) 
    y1 = int(row[2]) 
    z1 = int(row[2]) 
+0

was ist die Struktur Ihrer csv zu bekommen? Was ist "Zeile", wenn Sie den Reader durchlaufen? – dm03514

Antwort

15

Sie wie nur die erste Zeile bekommen konnte:

csv_reader = csv.reader(f) 
csv_headings = next(csv_reader) 
first_line = next(csv_reader) 
80

Um nur die erste Zeile des Lese CSV-Datei verwenden next() auf dem Reader-Objekt.

with open('some.csv', newline='') as f: 
    reader = csv.reader(f) 
    row1 = next(reader) # gets the first line 
    # now do something here 
    # if first row is the header, then you can do one more next() to get the next row: 
    # row2 = next(f) 

oder:

with open('some.csv', newline='') as f: 
    reader = csv.reader(f) 
    for row in reader: 
    # do something here with `row` 
    break 
+0

@GavrielCohen warum? – Steve

+0

Mein Fehler, ich meinte eine andere Lösung, sorry –

7

Vom Python documentation:

Und während das Modul nicht direkt Parsing-Strings unterstützen, kann es leicht geschehen:

import csv 
for row in csv.reader(['one,two,three']): 
    print row 

Lassen Sie Ihre String-Daten einfach in eine Singleton-Liste fallen.

11

Sie können die Pandas-Bibliothek verwenden, um die ersten Zeilen des großen Datasets zu lesen.

Sie können die Anzahl der zu lesenden Zeilen im Parameter nrows angeben.

4

Der einfache Weg, um jede Zeile in CSV-Datei

import csv 
csvfile = open('some.csv','rb') 
csvFileArray = [] 
for row in csv.reader(csvfile, delimiter = '.'): 
    csvFileArray.append(row) 
print(csvFileArray[0]) 
+0

Um dies in python3 zu machen, entfernen Sie einfach das 'b' in 'rb' –

Verwandte Themen