2014-12-16 36 views
11

Muhtemelen aptalca bir hata yapıyorum, ama nerede olduğunu bulamıyorum. Csv dosyasındaki satır sayısını saymak istiyorum. Bunu yazdım ve açıkçası çalışmıyor: row_count = 0, 400 olmalı. Şerefe.Bir csv dosyasında satır sayısı

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

Olası çoğaltılabilir [CSV Python'da kaç satır olduğunu sayın?] (http://stackoverflow.com/questions/16108526/count-how-many-lines-are-in-a-csv- python) – AjayKumarBasuthkar

cevap

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

dosya işaretçisi data listesini kaydettikten sonra dosyanın sonuna çoktan erişti zaman, iki kez dosyayı okumaya çalışıyoruz.

+0

cheers pal. Memnun olurum. –

1

Önce Sonra Sonunda açık csv

reader_file = csv.reader(input_file) 

için csv.reader kullanmak açık

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

ile dosyayı açmak için var, aldığı satırın numarasını alabilir talimat 'len'

value = len(list(reader_file)) 

toplam kod şudur:

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

Eğer csv dosyasını yeniden kullanmak isterseniz, bir input_file.fseek (0) oluşturmanız gerekir, çünkü read_file için bir liste kullandığınızda, tüm dosya ve dosyadaki işaretçiyi okur. konumunu değiştirin

İlgili konular