2014-12-16 9 views
11

Prawdopodobnie popełniam głupi błąd, ale nie mogę go znaleźć. Chcę policzyć liczbę linii w moim pliku csv. Napisałem to i oczywiście nie działa: mam row_count = 0, a powinno być 400. Pozdrawiam.Liczba wierszy w pliku 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

Możliwy duplikat [Policz ile wierszy znajduje się w pytaniu CSV?] (http://stackoverflow.com/questions/16108526/count-how-many-lines-are-in-a-csv- python) – AjayKumarBasuthkar

Odpowiedz

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

Próbujesz odczytać plik dwukrotnie, gdy wskaźnik plik został już osiągnięty koniec pliku po zapisaniu listy data.

+0

Pozdrawiam pal. Doceniać to. –

1

Najpierw trzeba otworzyć plik z otwartym

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

Następnie użyj csv.reader dla otworzyć csv

reader_file = csv.reader(input_file) 

Na ostatnim, można przyjąć liczbę z rzędu instrukcja 'len'

value = len(list(reader_file)) 

całkowity kod jest taka:

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

Pamiętaj, że jeśli chcesz ponownie użyć pliku csv, trzeba dokonać input_file.fseek (0), ponieważ w przypadku korzystania z listy za reader_file, odczytuje cały plik i wskaźnik w pliku zmień jego pozycję