2014-12-16 31 views
11

Probabilmente sto facendo uno stupido errore, ma non riesco a trovare dove sia. Voglio contare il numero di righe nel mio file CSV. Ho scritto questo, e ovviamente non funziona: ho row_count = 0 mentre dovrebbe essere 400. Saluti.Numero di righe in un file CSV

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

Possibile duplicato di [Conta quante linee sono in un CSV Python?] (http://stackoverflow.com/questions/16108526/count-how-many-lines-are-in-a-csv- python) – AjayKumarBasuthkar

risposta

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

Si sta cercando di leggere il file due volte, quando il puntatore del file ha già raggiunto la fine del file dopo aver salvato la lista data.

+0

cheers pal. Lo apprezzo. –

1

In primo luogo è necessario aprire il file con aperta

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

Quindi utilizzare il csv.reader per aprire il csv

reader_file = csv.reader(input_file) 

All'ultimo, si può prendere il numero di riga con il istruzione 'len'

value = len(list(reader_file)) 

Il codice totale è questo:

input_file = open("nameOfFile.csv","r+") 
reader_file = csv.reader(input_file) 
value = len(list(reader_file)) 

Ricordare che se si desidera riutilizzare il file csv, è necessario creare un file_file.fseek (0), poiché quando si utilizza un elenco per il file reader, esso legge tutti i file e il puntatore nel file cambia la sua posizione

Problemi correlati