Ответ 1
with open(adresse,"r") as f:
reader = csv.reader(f,delimiter = ",")
data = list(reader)
row_count = len(data)
Вы пытаетесь прочитать файл дважды, когда указатель файла уже достиг конца файла после сохранения списка data
.
Я, вероятно, делаю глупую ошибку, но я не могу найти, где она. Я хочу подсчитать количество строк в моем файле 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
with open(adresse,"r") as f:
reader = csv.reader(f,delimiter = ",")
data = list(reader)
row_count = len(data)
Вы пытаетесь прочитать файл дважды, когда указатель файла уже достиг конца файла после сохранения списка data
.
Сначала вам нужно открыть файл с открытым
input_file = open("nameOfFile.csv","r+")
Затем используйте csv.reader для открытия csv
reader_file = csv.reader(input_file)
В последнем случае вы можете взять число строк с инструкцией 'len'
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, он считывает весь файл, а указатель в файле меняет свою позицию
Если вы работаете с python3 и у вас установлена библиотека pandas, вы можете перейти с помощью
import pandas as pd
results = pd.read_csv('f.csv')
print(len(results))