Количество строк в csv-файле

Я, вероятно, делаю глупую ошибку, но я не могу найти, где она находится. Я хочу подсчитать количество строк в моем csv-файле. Я написал это, и, очевидно, не работает: у меня row_count = 0 а должно быть 400. Овации.

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

2 ответов


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

вы пытаетесь прочитать файл дважды, когда указатель файла достиг конца файла после сохранения data список.


сначала вам нужно открыть файл с помощью open

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

затем используйте csv.читатель для открытия csv

reader_file = csv.reader(input_file)

наконец, вы можете взять номер строки с инструкцией 'лен'

value = len(list(reader_file))

общий код такой:

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

помните, что если вы хотите повторно использовать csv-файл, вы должны сделать input_file.fseek (0), потому что при использовании списка для reader_file он считывает весь файл, а указатель в файле изменяет его позиция