2014-12-16 6 views
11

Ich mache wahrscheinlich einen dummen Fehler, aber ich kann nicht finden, wo es ist. Ich möchte die Anzahl der Zeilen in meiner CSV-Datei zählen. Ich schrieb das und funktioniert offensichtlich nicht: Ich habe row_count = 0, während es 400 sein sollte. Prost.Zeilenanzahl in einer CSV-Datei

f = open(adresse,"r") 
reader = csv.reader(f,delimiter = ",") 
data = [l for l in reader] 
row_count = sum(1 for row in reader) 

print row_count 
+0

Mögliche Duplikate von [Zählen Sie, wie viele Zeilen in einem CSV-Python sind?] (http://stackoverflow.com/questions/16108526/count-how-many-lines-are-in-a-csv- Python) – AjayKumarBasuthkar

Antwort

24
with open(adresse,"r") as f: 
    reader = csv.reader(f,delimiter = ",") 
    data = list(reader) 
    row_count = len(data) 

Sie versuchen, nach dem Speichern der data Liste zu lesen hat die Datei zweimal, wenn der Dateizeiger bereits das Ende der Datei erreicht.

+0

Prost Kumpel. Ich weiß es zu schätzen. –

1

Zuerst müssen Sie die Datei öffnen, mit offenen

input_file = open("nameOfFile.csv","r+") 

dann die csv.reader für Open die

reader_file = csv.reader(input_file) 

Bei den letzten csv verwenden, können Sie die Anzahl der Zeile mit dem nehmen Anweisung 'Len'

value = len(list(reader_file)) 

Der gesamte Code ist folgendes:

Denken Sie daran, dass Sie, wenn Sie die CSV-Datei wiederverwenden möchten, eine input_file.fseek (0) erstellen müssen, da bei Verwendung einer Liste für die reader_file alle Dateien und Zeiger in der Datei gelesen werden Ändern Sie die Position